StringUtils.java

1
/*
2
 * Licensed to the Apache Software Foundation (ASF) under one or more
3
 * contributor license agreements.  See the NOTICE file distributed with
4
 * this work for additional information regarding copyright ownership.
5
 * The ASF licenses this file to You under the Apache License, Version 2.0
6
 * (the "License"); you may not use this file except in compliance with
7
 * the License.  You may obtain a copy of the License at
8
 *
9
 *      http://www.apache.org/licenses/LICENSE-2.0
10
 *
11
 * Unless required by applicable law or agreed to in writing, software
12
 * distributed under the License is distributed on an "AS IS" BASIS,
13
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 * See the License for the specific language governing permissions and
15
 * limitations under the License.
16
 */
17
package org.apache.commons.lang3;
18
19
import java.io.UnsupportedEncodingException;
20
import java.nio.charset.Charset;
21
import java.text.Normalizer;
22
import java.util.ArrayList;
23
import java.util.Arrays;
24
import java.util.Iterator;
25
import java.util.List;
26
import java.util.Locale;
27
import java.util.Objects;
28
import java.util.regex.Pattern;
29
30
/**
31
 * <p>Operations on {@link java.lang.String} that are
32
 * {@code null} safe.</p>
33
 *
34
 * <ul>
35
 *  <li><b>IsEmpty/IsBlank</b>
36
 *      - checks if a String contains text</li>
37
 *  <li><b>Trim/Strip</b>
38
 *      - removes leading and trailing whitespace</li>
39
 *  <li><b>Equals/Compare</b>
40
 *      - compares two strings null-safe</li>
41
 *  <li><b>startsWith</b>
42
 *      - check if a String starts with a prefix null-safe</li>
43
 *  <li><b>endsWith</b>
44
 *      - check if a String ends with a suffix null-safe</li>
45
 *  <li><b>IndexOf/LastIndexOf/Contains</b>
46
 *      - null-safe index-of checks
47
 *  <li><b>IndexOfAny/LastIndexOfAny/IndexOfAnyBut/LastIndexOfAnyBut</b>
48
 *      - index-of any of a set of Strings</li>
49
 *  <li><b>ContainsOnly/ContainsNone/ContainsAny</b>
50
 *      - does String contains only/none/any of these characters</li>
51
 *  <li><b>Substring/Left/Right/Mid</b>
52
 *      - null-safe substring extractions</li>
53
 *  <li><b>SubstringBefore/SubstringAfter/SubstringBetween</b>
54
 *      - substring extraction relative to other strings</li>
55
 *  <li><b>Split/Join</b>
56
 *      - splits a String into an array of substrings and vice versa</li>
57
 *  <li><b>Remove/Delete</b>
58
 *      - removes part of a String</li>
59
 *  <li><b>Replace/Overlay</b>
60
 *      - Searches a String and replaces one String with another</li>
61
 *  <li><b>Chomp/Chop</b>
62
 *      - removes the last part of a String</li>
63
 *  <li><b>AppendIfMissing</b>
64
 *      - appends a suffix to the end of the String if not present</li>
65
 *  <li><b>PrependIfMissing</b>
66
 *      - prepends a prefix to the start of the String if not present</li>
67
 *  <li><b>LeftPad/RightPad/Center/Repeat</b>
68
 *      - pads a String</li>
69
 *  <li><b>UpperCase/LowerCase/SwapCase/Capitalize/Uncapitalize</b>
70
 *      - changes the case of a String</li>
71
 *  <li><b>CountMatches</b>
72
 *      - counts the number of occurrences of one String in another</li>
73
 *  <li><b>IsAlpha/IsNumeric/IsWhitespace/IsAsciiPrintable</b>
74
 *      - checks the characters in a String</li>
75
 *  <li><b>DefaultString</b>
76
 *      - protects against a null input String</li>
77
 *  <li><b>Rotate</b>
78
 *      - rotate (circular shift) a String</li>
79
 *  <li><b>Reverse/ReverseDelimited</b>
80
 *      - reverses a String</li>
81
 *  <li><b>Abbreviate</b>
82
 *      - abbreviates a string using ellipsis or another given String</li>
83
 *  <li><b>Difference</b>
84
 *      - compares Strings and reports on their differences</li>
85
 *  <li><b>LevenshteinDistance</b>
86
 *      - the number of changes needed to change one String into another</li>
87
 * </ul>
88
 *
89
 * <p>The {@code StringUtils} class defines certain words related to
90
 * String handling.</p>
91
 *
92
 * <ul>
93
 *  <li>null - {@code null}</li>
94
 *  <li>empty - a zero-length string ({@code ""})</li>
95
 *  <li>space - the space character ({@code ' '}, char 32)</li>
96
 *  <li>whitespace - the characters defined by {@link Character#isWhitespace(char)}</li>
97
 *  <li>trim - the characters &lt;= 32 as in {@link String#trim()}</li>
98
 * </ul>
99
 *
100
 * <p>{@code StringUtils} handles {@code null} input Strings quietly.
101
 * That is to say that a {@code null} input will return {@code null}.
102
 * Where a {@code boolean} or {@code int} is being returned
103
 * details vary by method.</p>
104
 *
105
 * <p>A side effect of the {@code null} handling is that a
106
 * {@code NullPointerException} should be considered a bug in
107
 * {@code StringUtils}.</p>
108
 *
109
 * <p>Methods in this class give sample code to explain their operation.
110
 * The symbol {@code *} is used to indicate any input including {@code null}.</p>
111
 *
112
 * <p>#ThreadSafe#</p>
113
 * @see java.lang.String
114
 * @since 1.0
115
 */
116
//@Immutable
117
public class StringUtils {
118
    // Performance testing notes (JDK 1.4, Jul03, scolebourne)
119
    // Whitespace:
120
    // Character.isWhitespace() is faster than WHITESPACE.indexOf()
121
    // where WHITESPACE is a string of all whitespace characters
122
    //
123
    // Character access:
124
    // String.charAt(n) versus toCharArray(), then array[n]
125
    // String.charAt(n) is about 15% worse for a 10K string
126
    // They are about equal for a length 50 string
127
    // String.charAt(n) is about 4 times better for a length 3 string
128
    // String.charAt(n) is best bet overall
129
    //
130
    // Append:
131
    // String.concat about twice as fast as StringBuffer.append
132
    // (not sure who tested this)
133
134
    /**
135
     * A String for a space character.
136
     *
137
     * @since 3.2
138
     */
139
    public static final String SPACE = " ";
140
141
    /**
142
     * The empty String {@code ""}.
143
     * @since 2.0
144
     */
145
    public static final String EMPTY = "";
146
147
    /**
148
     * A String for linefeed LF ("\n").
149
     *
150
     * @see <a href="http://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html#jls-3.10.6">JLF: Escape Sequences
151
     *      for Character and String Literals</a>
152
     * @since 3.2
153
     */
154
    public static final String LF = "\n";
155
156
    /**
157
     * A String for carriage return CR ("\r").
158
     *
159
     * @see <a href="http://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html#jls-3.10.6">JLF: Escape Sequences
160
     *      for Character and String Literals</a>
161
     * @since 3.2
162
     */
163
    public static final String CR = "\r";
164
165
    /**
166
     * Represents a failed index search.
167
     * @since 2.1
168
     */
169
    public static final int INDEX_NOT_FOUND = -1;
170
171
    /**
172
     * <p>The maximum size to which the padding constant(s) can expand.</p>
173
     */
174
    private static final int PAD_LIMIT = 8192;
175
176
    /**
177
     * <p>{@code StringUtils} instances should NOT be constructed in
178
     * standard programming. Instead, the class should be used as
179
     * {@code StringUtils.trim(" foo ");}.</p>
180
     *
181
     * <p>This constructor is public to permit tools that require a JavaBean
182
     * instance to operate.</p>
183
     */
184
    public StringUtils() {
185
        super();
186
    }
187
188
    // Empty checks
189
    //-----------------------------------------------------------------------
190
    /**
191
     * <p>Checks if a CharSequence is empty ("") or null.</p>
192
     *
193
     * <pre>
194
     * StringUtils.isEmpty(null)      = true
195
     * StringUtils.isEmpty("")        = true
196
     * StringUtils.isEmpty(" ")       = false
197
     * StringUtils.isEmpty("bob")     = false
198
     * StringUtils.isEmpty("  bob  ") = false
199
     * </pre>
200
     *
201
     * <p>NOTE: This method changed in Lang version 2.0.
202
     * It no longer trims the CharSequence.
203
     * That functionality is available in isBlank().</p>
204
     *
205
     * @param cs  the CharSequence to check, may be null
206
     * @return {@code true} if the CharSequence is empty or null
207
     * @since 3.0 Changed signature from isEmpty(String) to isEmpty(CharSequence)
208
     */
209
    public static boolean isEmpty(final CharSequence cs) {
210 3 1. isEmpty : negated conditional → KILLED
2. isEmpty : negated conditional → KILLED
3. isEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return cs == null || cs.length() == 0;
211
    }
212
213
    /**
214
     * <p>Checks if a CharSequence is not empty ("") and not null.</p>
215
     *
216
     * <pre>
217
     * StringUtils.isNotEmpty(null)      = false
218
     * StringUtils.isNotEmpty("")        = false
219
     * StringUtils.isNotEmpty(" ")       = true
220
     * StringUtils.isNotEmpty("bob")     = true
221
     * StringUtils.isNotEmpty("  bob  ") = true
222
     * </pre>
223
     *
224
     * @param cs  the CharSequence to check, may be null
225
     * @return {@code true} if the CharSequence is not empty and not null
226
     * @since 3.0 Changed signature from isNotEmpty(String) to isNotEmpty(CharSequence)
227
     */
228
    public static boolean isNotEmpty(final CharSequence cs) {
229 2 1. isNotEmpty : negated conditional → KILLED
2. isNotEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return !isEmpty(cs);
230
    }
231
       
232
    /**
233
     * <p>Checks if any of the CharSequences are empty ("") or null.</p>
234
     *
235
     * <pre>
236
     * StringUtils.isAnyEmpty(null)             = true
237
     * StringUtils.isAnyEmpty(null, "foo")      = true
238
     * StringUtils.isAnyEmpty("", "bar")        = true
239
     * StringUtils.isAnyEmpty("bob", "")        = true
240
     * StringUtils.isAnyEmpty("  bob  ", null)  = true
241
     * StringUtils.isAnyEmpty(" ", "bar")       = false
242
     * StringUtils.isAnyEmpty("foo", "bar")     = false
243
     * </pre>
244
     *
245
     * @param css  the CharSequences to check, may be null or empty
246
     * @return {@code true} if any of the CharSequences are empty or null
247
     * @since 3.2
248
     */
249
    public static boolean isAnyEmpty(final CharSequence... css) {
250 1 1. isAnyEmpty : negated conditional → KILLED
      if (ArrayUtils.isEmpty(css)) {
251 1 1. isAnyEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
252
      }
253 3 1. isAnyEmpty : changed conditional boundary → KILLED
2. isAnyEmpty : Changed increment from 1 to -1 → KILLED
3. isAnyEmpty : negated conditional → KILLED
      for (final CharSequence cs : css){
254 1 1. isAnyEmpty : negated conditional → KILLED
        if (isEmpty(cs)) {
255 1 1. isAnyEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
          return true;
256
        }
257
      }
258 1 1. isAnyEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
      return false;
259
    }
260
261
    /**
262
     * <p>Checks if any of the CharSequences are not empty ("") and not null.</p>
263
     *
264
     * <pre>
265
     * StringUtils.isAnyNotEmpty(null)             = false
266
     * StringUtils.isAnyNotEmpty(new String[] {})  = false
267
     * StringUtils.isAnyNotEmpty(null, "foo")      = true
268
     * StringUtils.isAnyNotEmpty("", "bar")        = true
269
     * StringUtils.isAnyNotEmpty("bob", "")        = true
270
     * StringUtils.isAnyNotEmpty("  bob  ", null)  = true
271
     * StringUtils.isAnyNotEmpty(" ", "bar")       = true
272
     * StringUtils.isAnyNotEmpty("foo", "bar")     = true
273
     * </pre>
274
     *
275
     * @param css  the CharSequences to check, may be null or empty
276
     * @return {@code true} if any of the CharSequences are not empty and not null
277
     * @since 3.6
278
     */
279
    public static boolean isAnyNotEmpty(final CharSequence... css) {
280 1 1. isAnyNotEmpty : negated conditional → KILLED
      if (ArrayUtils.isEmpty(css)) {
281 1 1. isAnyNotEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
282
      }
283 3 1. isAnyNotEmpty : changed conditional boundary → KILLED
2. isAnyNotEmpty : Changed increment from 1 to -1 → KILLED
3. isAnyNotEmpty : negated conditional → KILLED
      for (final CharSequence cs : css) {
284 1 1. isAnyNotEmpty : negated conditional → KILLED
        if (isNotEmpty(cs)) {
285 1 1. isAnyNotEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
          return true;
286
        }
287
      }
288 1 1. isAnyNotEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
      return false;
289
    }
290
291
    /**
292
     * <p>Checks if none of the CharSequences are empty ("") or null.</p>
293
     *
294
     * <pre>
295
     * StringUtils.isNoneEmpty(null)             = false
296
     * StringUtils.isNoneEmpty(null, "foo")      = false
297
     * StringUtils.isNoneEmpty("", "bar")        = false
298
     * StringUtils.isNoneEmpty("bob", "")        = false
299
     * StringUtils.isNoneEmpty("  bob  ", null)  = false
300
     * StringUtils.isNoneEmpty(new String[] {})  = false
301
     * StringUtils.isNoneEmpty(" ", "bar")       = true
302
     * StringUtils.isNoneEmpty("foo", "bar")     = true
303
     * </pre>
304
     *
305
     * @param css  the CharSequences to check, may be null or empty
306
     * @return {@code true} if none of the CharSequences are empty or null
307
     * @since 3.2
308
     */
309
    public static boolean isNoneEmpty(final CharSequence... css) {
310 2 1. isNoneEmpty : negated conditional → KILLED
2. isNoneEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
      return !isAnyEmpty(css);
311
    }
312
313
    /**
314
     * <p>Checks if all of the CharSequences are empty ("") or null.</p>
315
     *
316
     * <pre>
317
     * StringUtils.isAllEmpty(null)             = true
318
     * StringUtils.isAllEmpty(null, "")         = true
319
     * StringUtils.isAllEmpty(new String[] {})  = true
320
     * StringUtils.isAllEmpty(null, "foo")      = false
321
     * StringUtils.isAllEmpty("", "bar")        = false
322
     * StringUtils.isAllEmpty("bob", "")        = false
323
     * StringUtils.isAllEmpty("  bob  ", null)  = false
324
     * StringUtils.isAllEmpty(" ", "bar")       = false
325
     * StringUtils.isAllEmpty("foo", "bar")     = false
326
     * </pre>
327
     *
328
     * @param css  the CharSequences to check, may be null or empty
329
     * @return {@code true} if all of the CharSequences are empty or null
330
     * @since 3.6
331
     */
332
    public static boolean isAllEmpty(final CharSequence... css) {
333 2 1. isAllEmpty : negated conditional → KILLED
2. isAllEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
      return !isAnyNotEmpty(css);
334
    }
335
336
    /**
337
     * <p>Checks if a CharSequence is empty (""), null or whitespace only.</p>
338
     * 
339
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
340
     *
341
     * <pre>
342
     * StringUtils.isBlank(null)      = true
343
     * StringUtils.isBlank("")        = true
344
     * StringUtils.isBlank(" ")       = true
345
     * StringUtils.isBlank("bob")     = false
346
     * StringUtils.isBlank("  bob  ") = false
347
     * </pre>
348
     *
349
     * @param cs  the CharSequence to check, may be null
350
     * @return {@code true} if the CharSequence is null, empty or whitespace only
351
     * @since 2.0
352
     * @since 3.0 Changed signature from isBlank(String) to isBlank(CharSequence)
353
     */
354
    public static boolean isBlank(final CharSequence cs) {
355
        int strLen;
356 2 1. isBlank : negated conditional → KILLED
2. isBlank : negated conditional → KILLED
        if (cs == null || (strLen = cs.length()) == 0) {
357 1 1. isBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
358
        }
359 3 1. isBlank : changed conditional boundary → KILLED
2. isBlank : Changed increment from 1 to -1 → KILLED
3. isBlank : negated conditional → KILLED
        for (int i = 0; i < strLen; i++) {
360 1 1. isBlank : negated conditional → KILLED
            if (Character.isWhitespace(cs.charAt(i)) == false) {
361 1 1. isBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
362
            }
363
        }
364 1 1. isBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
365
    }
366
367
    /**
368
     * <p>Checks if a CharSequence is not empty (""), not null and not whitespace only.</p>
369
     * 
370
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
371
     *
372
     * <pre>
373
     * StringUtils.isNotBlank(null)      = false
374
     * StringUtils.isNotBlank("")        = false
375
     * StringUtils.isNotBlank(" ")       = false
376
     * StringUtils.isNotBlank("bob")     = true
377
     * StringUtils.isNotBlank("  bob  ") = true
378
     * </pre>
379
     *
380
     * @param cs  the CharSequence to check, may be null
381
     * @return {@code true} if the CharSequence is
382
     *  not empty and not null and not whitespace only
383
     * @since 2.0
384
     * @since 3.0 Changed signature from isNotBlank(String) to isNotBlank(CharSequence)
385
     */
386
    public static boolean isNotBlank(final CharSequence cs) {
387 2 1. isNotBlank : negated conditional → KILLED
2. isNotBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return !isBlank(cs);
388
    }
389
390
    /**
391
     * <p>Checks if any of the CharSequences are empty ("") or null or whitespace only.</p>
392
     * 
393
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
394
     *
395
     * <pre>
396
     * StringUtils.isAnyBlank(null)             = true
397
     * StringUtils.isAnyBlank(null, "foo")      = true
398
     * StringUtils.isAnyBlank(null, null)       = true
399
     * StringUtils.isAnyBlank("", "bar")        = true
400
     * StringUtils.isAnyBlank("bob", "")        = true
401
     * StringUtils.isAnyBlank("  bob  ", null)  = true
402
     * StringUtils.isAnyBlank(" ", "bar")       = true
403
     * StringUtils.isAnyBlank(new String[] {})  = false
404
     * StringUtils.isAnyBlank("foo", "bar")     = false
405
     * </pre>
406
     *
407
     * @param css  the CharSequences to check, may be null or empty
408
     * @return {@code true} if any of the CharSequences are empty or null or whitespace only
409
     * @since 3.2
410
     */
411
    public static boolean isAnyBlank(final CharSequence... css) {
412 1 1. isAnyBlank : negated conditional → KILLED
      if (ArrayUtils.isEmpty(css)) {
413 1 1. isAnyBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
414
      }
415 3 1. isAnyBlank : changed conditional boundary → KILLED
2. isAnyBlank : Changed increment from 1 to -1 → KILLED
3. isAnyBlank : negated conditional → KILLED
      for (final CharSequence cs : css){
416 1 1. isAnyBlank : negated conditional → KILLED
        if (isBlank(cs)) {
417 1 1. isAnyBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
          return true;
418
        }
419
      }
420 1 1. isAnyBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
      return false;
421
    }
422
423
    /**
424
     * <p>Checks if any of the CharSequences are not empty (""), not null and not whitespace only.</p>
425
     * 
426
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
427
     *
428
     * <pre>
429
     * StringUtils.isAnyNotBlank(null)             = false
430
     * StringUtils.isAnyNotBlank(null, "foo")      = true
431
     * StringUtils.isAnyNotBlank(null, null)       = false
432
     * StringUtils.isAnyNotBlank("", "bar")        = true
433
     * StringUtils.isAnyNotBlank("bob", "")        = true
434
     * StringUtils.isAnyNotBlank("  bob  ", null)  = true
435
     * StringUtils.isAnyNotBlank(" ", "bar")       = true
436
     * StringUtils.isAnyNotBlank("foo", "bar")     = true
437
     * StringUtils.isAnyNotBlank(new String[] {})  = false
438
     * </pre>
439
     *
440
     * @param css  the CharSequences to check, may be null or empty
441
     * @return {@code true} if any of the CharSequences are not empty and not null and not whitespace only
442
     * @since 3.6
443
     */
444
    public static boolean isAnyNotBlank(final CharSequence... css) {
445 1 1. isAnyNotBlank : negated conditional → KILLED
      if (ArrayUtils.isEmpty(css)) {
446 1 1. isAnyNotBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
447
      }
448 3 1. isAnyNotBlank : changed conditional boundary → KILLED
2. isAnyNotBlank : Changed increment from 1 to -1 → KILLED
3. isAnyNotBlank : negated conditional → KILLED
      for (final CharSequence cs : css) {
449 1 1. isAnyNotBlank : negated conditional → KILLED
        if (isNotBlank(cs)) {
450 1 1. isAnyNotBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
          return true;
451
        }
452
      }
453 1 1. isAnyNotBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
      return false;
454
    }
455
456
    /**
457
     * <p>Checks if none of the CharSequences are empty (""), null or whitespace only.</p>
458
     * 
459
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
460
     *
461
     * <pre>
462
     * StringUtils.isNoneBlank(null)             = false
463
     * StringUtils.isNoneBlank(null, "foo")      = false
464
     * StringUtils.isNoneBlank(null, null)       = false
465
     * StringUtils.isNoneBlank("", "bar")        = false
466
     * StringUtils.isNoneBlank("bob", "")        = false
467
     * StringUtils.isNoneBlank("  bob  ", null)  = false
468
     * StringUtils.isNoneBlank(" ", "bar")       = false
469
     * StringUtils.isNoneBlank(new String[] {})  = false
470
     * StringUtils.isNoneBlank("foo", "bar")     = true
471
     * </pre>
472
     *
473
     * @param css  the CharSequences to check, may be null or empty
474
     * @return {@code true} if none of the CharSequences are empty or null or whitespace only
475
     * @since 3.2
476
     */
477
    public static boolean isNoneBlank(final CharSequence... css) {
478 2 1. isNoneBlank : negated conditional → KILLED
2. isNoneBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
      return !isAnyBlank(css);
479
    }
480
481
    /**
482
     * <p>Checks if all of the CharSequences are empty (""), null or whitespace only.</p>
483
     *
484
     * </p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
485
     *
486
     * <pre>
487
     * StringUtils.isAllBlank(null)             = true
488
     * StringUtils.isAllBlank(null, "foo")      = false
489
     * StringUtils.isAllBlank(null, null)       = true
490
     * StringUtils.isAllBlank("", "bar")        = false
491
     * StringUtils.isAllBlank("bob", "")        = false
492
     * StringUtils.isAllBlank("  bob  ", null)  = false
493
     * StringUtils.isAllBlank(" ", "bar")       = false
494
     * StringUtils.isAllBlank("foo", "bar")     = false
495
     * StringUtils.isAllBlank(new String[] {})  = true
496
     * </pre>
497
     *
498
     * @param css  the CharSequences to check, may be null or empty
499
     * @return {@code true} if all of the CharSequences are empty or null or whitespace only
500
     * @since 3.6
501
     */
502
    public static boolean isAllBlank(final CharSequence... css) {
503 2 1. isAllBlank : negated conditional → KILLED
2. isAllBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
      return !isAnyNotBlank(css);
504
    }
505
506
    // Trim
507
    //-----------------------------------------------------------------------
508
    /**
509
     * <p>Removes control characters (char &lt;= 32) from both
510
     * ends of this String, handling {@code null} by returning
511
     * {@code null}.</p>
512
     *
513
     * <p>The String is trimmed using {@link String#trim()}.
514
     * Trim removes start and end characters &lt;= 32.
515
     * To strip whitespace use {@link #strip(String)}.</p>
516
     *
517
     * <p>To trim your choice of characters, use the
518
     * {@link #strip(String, String)} methods.</p>
519
     *
520
     * <pre>
521
     * StringUtils.trim(null)          = null
522
     * StringUtils.trim("")            = ""
523
     * StringUtils.trim("     ")       = ""
524
     * StringUtils.trim("abc")         = "abc"
525
     * StringUtils.trim("    abc    ") = "abc"
526
     * </pre>
527
     *
528
     * @param str  the String to be trimmed, may be null
529
     * @return the trimmed string, {@code null} if null String input
530
     */
531
    public static String trim(final String str) {
532 2 1. trim : negated conditional → KILLED
2. trim : mutated return of Object value for org/apache/commons/lang3/StringUtils::trim to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str == null ? null : str.trim();
533
    }
534
535
    /**
536
     * <p>Removes control characters (char &lt;= 32) from both
537
     * ends of this String returning {@code null} if the String is
538
     * empty ("") after the trim or if it is {@code null}.
539
     *
540
     * <p>The String is trimmed using {@link String#trim()}.
541
     * Trim removes start and end characters &lt;= 32.
542
     * To strip whitespace use {@link #stripToNull(String)}.</p>
543
     *
544
     * <pre>
545
     * StringUtils.trimToNull(null)          = null
546
     * StringUtils.trimToNull("")            = null
547
     * StringUtils.trimToNull("     ")       = null
548
     * StringUtils.trimToNull("abc")         = "abc"
549
     * StringUtils.trimToNull("    abc    ") = "abc"
550
     * </pre>
551
     *
552
     * @param str  the String to be trimmed, may be null
553
     * @return the trimmed String,
554
     *  {@code null} if only chars &lt;= 32, empty or null String input
555
     * @since 2.0
556
     */
557
    public static String trimToNull(final String str) {
558
        final String ts = trim(str);
559 2 1. trimToNull : negated conditional → KILLED
2. trimToNull : mutated return of Object value for org/apache/commons/lang3/StringUtils::trimToNull to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return isEmpty(ts) ? null : ts;
560
    }
561
562
    /**
563
     * <p>Removes control characters (char &lt;= 32) from both
564
     * ends of this String returning an empty String ("") if the String
565
     * is empty ("") after the trim or if it is {@code null}.
566
     *
567
     * <p>The String is trimmed using {@link String#trim()}.
568
     * Trim removes start and end characters &lt;= 32.
569
     * To strip whitespace use {@link #stripToEmpty(String)}.</p>
570
     *
571
     * <pre>
572
     * StringUtils.trimToEmpty(null)          = ""
573
     * StringUtils.trimToEmpty("")            = ""
574
     * StringUtils.trimToEmpty("     ")       = ""
575
     * StringUtils.trimToEmpty("abc")         = "abc"
576
     * StringUtils.trimToEmpty("    abc    ") = "abc"
577
     * </pre>
578
     *
579
     * @param str  the String to be trimmed, may be null
580
     * @return the trimmed String, or an empty String if {@code null} input
581
     * @since 2.0
582
     */
583
    public static String trimToEmpty(final String str) {
584 2 1. trimToEmpty : negated conditional → KILLED
2. trimToEmpty : mutated return of Object value for org/apache/commons/lang3/StringUtils::trimToEmpty to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str == null ? EMPTY : str.trim();
585
    }
586
587
    /**
588
     * <p>Truncates a String. This will turn
589
     * "Now is the time for all good men" into "Now is the time for".</p>
590
     *
591
     * <p>Specifically:</p>
592
     * <ul>
593
     *   <li>If {@code str} is less than {@code maxWidth} characters
594
     *       long, return it.</li>
595
     *   <li>Else truncate it to {@code substring(str, 0, maxWidth)}.</li>
596
     *   <li>If {@code maxWidth} is less than {@code 0}, throw an
597
     *       {@code IllegalArgumentException}.</li>
598
     *   <li>In no case will it return a String of length greater than
599
     *       {@code maxWidth}.</li>
600
     * </ul>
601
     *
602
     * <pre>
603
     * StringUtils.truncate(null, 0)       = null
604
     * StringUtils.truncate(null, 2)       = null
605
     * StringUtils.truncate("", 4)         = ""
606
     * StringUtils.truncate("abcdefg", 4)  = "abcd"
607
     * StringUtils.truncate("abcdefg", 6)  = "abcdef"
608
     * StringUtils.truncate("abcdefg", 7)  = "abcdefg"
609
     * StringUtils.truncate("abcdefg", 8)  = "abcdefg"
610
     * StringUtils.truncate("abcdefg", -1) = throws an IllegalArgumentException
611
     * </pre>
612
     *
613
     * @param str  the String to truncate, may be null
614
     * @param maxWidth  maximum length of result String, must be positive
615
     * @return truncated String, {@code null} if null String input
616
     * @since 3.5
617
     */
618
    public static String truncate(final String str, final int maxWidth) {
619 1 1. truncate : mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return truncate(str, 0, maxWidth);
620
    }
621
622
    /**
623
     * <p>Truncates a String. This will turn
624
     * "Now is the time for all good men" into "is the time for all".</p>
625
     *
626
     * <p>Works like {@code truncate(String, int)}, but allows you to specify
627
     * a "left edge" offset.
628
     *
629
     * <p>Specifically:</p>
630
     * <ul>
631
     *   <li>If {@code str} is less than {@code maxWidth} characters
632
     *       long, return it.</li>
633
     *   <li>Else truncate it to {@code substring(str, offset, maxWidth)}.</li>
634
     *   <li>If {@code maxWidth} is less than {@code 0}, throw an
635
     *       {@code IllegalArgumentException}.</li>
636
     *   <li>If {@code offset} is less than {@code 0}, throw an
637
     *       {@code IllegalArgumentException}.</li>
638
     *   <li>In no case will it return a String of length greater than
639
     *       {@code maxWidth}.</li>
640
     * </ul>
641
     *
642
     * <pre>
643
     * StringUtils.truncate(null, 0, 0) = null
644
     * StringUtils.truncate(null, 2, 4) = null
645
     * StringUtils.truncate("", 0, 10) = ""
646
     * StringUtils.truncate("", 2, 10) = ""
647
     * StringUtils.truncate("abcdefghij", 0, 3) = "abc"
648
     * StringUtils.truncate("abcdefghij", 5, 6) = "fghij"
649
     * StringUtils.truncate("raspberry peach", 10, 15) = "peach"
650
     * StringUtils.truncate("abcdefghijklmno", 0, 10) = "abcdefghij"
651
     * StringUtils.truncate("abcdefghijklmno", -1, 10) = throws an IllegalArgumentException
652
     * StringUtils.truncate("abcdefghijklmno", Integer.MIN_VALUE, 10) = "abcdefghij"
653
     * StringUtils.truncate("abcdefghijklmno", Integer.MIN_VALUE, Integer.MAX_VALUE) = "abcdefghijklmno"
654
     * StringUtils.truncate("abcdefghijklmno", 0, Integer.MAX_VALUE) = "abcdefghijklmno"
655
     * StringUtils.truncate("abcdefghijklmno", 1, 10) = "bcdefghijk"
656
     * StringUtils.truncate("abcdefghijklmno", 2, 10) = "cdefghijkl"
657
     * StringUtils.truncate("abcdefghijklmno", 3, 10) = "defghijklm"
658
     * StringUtils.truncate("abcdefghijklmno", 4, 10) = "efghijklmn"
659
     * StringUtils.truncate("abcdefghijklmno", 5, 10) = "fghijklmno"
660
     * StringUtils.truncate("abcdefghijklmno", 5, 5) = "fghij"
661
     * StringUtils.truncate("abcdefghijklmno", 5, 3) = "fgh"
662
     * StringUtils.truncate("abcdefghijklmno", 10, 3) = "klm"
663
     * StringUtils.truncate("abcdefghijklmno", 10, Integer.MAX_VALUE) = "klmno"
664
     * StringUtils.truncate("abcdefghijklmno", 13, 1) = "n"
665
     * StringUtils.truncate("abcdefghijklmno", 13, Integer.MAX_VALUE) = "no"
666
     * StringUtils.truncate("abcdefghijklmno", 14, 1) = "o"
667
     * StringUtils.truncate("abcdefghijklmno", 14, Integer.MAX_VALUE) = "o"
668
     * StringUtils.truncate("abcdefghijklmno", 15, 1) = ""
669
     * StringUtils.truncate("abcdefghijklmno", 15, Integer.MAX_VALUE) = ""
670
     * StringUtils.truncate("abcdefghijklmno", Integer.MAX_VALUE, Integer.MAX_VALUE) = ""
671
     * StringUtils.truncate("abcdefghij", 3, -1) = throws an IllegalArgumentException
672
     * StringUtils.truncate("abcdefghij", -2, 4) = throws an IllegalArgumentException
673
     * </pre>
674
     *
675
     * @param str  the String to check, may be null
676
     * @param offset  left edge of source String
677
     * @param maxWidth  maximum length of result String, must be positive
678
     * @return truncated String, {@code null} if null String input
679
     * @since 3.5
680
     */
681
    public static String truncate(final String str, final int offset, final int maxWidth) {
682 2 1. truncate : changed conditional boundary → KILLED
2. truncate : negated conditional → KILLED
        if (offset < 0) {
683
            throw new IllegalArgumentException("offset cannot be negative");
684
        }
685 2 1. truncate : changed conditional boundary → KILLED
2. truncate : negated conditional → KILLED
        if (maxWidth < 0) {
686
            throw new IllegalArgumentException("maxWith cannot be negative");
687
        }
688 1 1. truncate : negated conditional → KILLED
        if (str == null) {
689 1 1. truncate : mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
690
        }
691 2 1. truncate : changed conditional boundary → SURVIVED
2. truncate : negated conditional → KILLED
        if (offset > str.length()) {
692 1 1. truncate : mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
693
        }
694 2 1. truncate : changed conditional boundary → SURVIVED
2. truncate : negated conditional → KILLED
        if (str.length() > maxWidth) {
695 4 1. truncate : changed conditional boundary → SURVIVED
2. truncate : Replaced integer addition with subtraction → KILLED
3. truncate : Replaced integer addition with subtraction → KILLED
4. truncate : negated conditional → KILLED
            final int ix = offset + maxWidth > str.length() ? str.length() : offset + maxWidth;
696 1 1. truncate : mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(offset, ix);
697
        }
698 1 1. truncate : mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(offset);
699
    }
700
701
    // Stripping
702
    //-----------------------------------------------------------------------
703
    /**
704
     * <p>Strips whitespace from the start and end of a String.</p>
705
     *
706
     * <p>This is similar to {@link #trim(String)} but removes whitespace.
707
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
708
     *
709
     * <p>A {@code null} input String returns {@code null}.</p>
710
     *
711
     * <pre>
712
     * StringUtils.strip(null)     = null
713
     * StringUtils.strip("")       = ""
714
     * StringUtils.strip("   ")    = ""
715
     * StringUtils.strip("abc")    = "abc"
716
     * StringUtils.strip("  abc")  = "abc"
717
     * StringUtils.strip("abc  ")  = "abc"
718
     * StringUtils.strip(" abc ")  = "abc"
719
     * StringUtils.strip(" ab c ") = "ab c"
720
     * </pre>
721
     *
722
     * @param str  the String to remove whitespace from, may be null
723
     * @return the stripped String, {@code null} if null String input
724
     */
725
    public static String strip(final String str) {
726 1 1. strip : mutated return of Object value for org/apache/commons/lang3/StringUtils::strip to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return strip(str, null);
727
    }
728
729
    /**
730
     * <p>Strips whitespace from the start and end of a String  returning
731
     * {@code null} if the String is empty ("") after the strip.</p>
732
     *
733
     * <p>This is similar to {@link #trimToNull(String)} but removes whitespace.
734
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
735
     *
736
     * <pre>
737
     * StringUtils.stripToNull(null)     = null
738
     * StringUtils.stripToNull("")       = null
739
     * StringUtils.stripToNull("   ")    = null
740
     * StringUtils.stripToNull("abc")    = "abc"
741
     * StringUtils.stripToNull("  abc")  = "abc"
742
     * StringUtils.stripToNull("abc  ")  = "abc"
743
     * StringUtils.stripToNull(" abc ")  = "abc"
744
     * StringUtils.stripToNull(" ab c ") = "ab c"
745
     * </pre>
746
     *
747
     * @param str  the String to be stripped, may be null
748
     * @return the stripped String,
749
     *  {@code null} if whitespace, empty or null String input
750
     * @since 2.0
751
     */
752
    public static String stripToNull(String str) {
753 1 1. stripToNull : negated conditional → KILLED
        if (str == null) {
754 1 1. stripToNull : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripToNull to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
755
        }
756
        str = strip(str, null);
757 2 1. stripToNull : negated conditional → KILLED
2. stripToNull : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripToNull to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.isEmpty() ? null : str;
758
    }
759
760
    /**
761
     * <p>Strips whitespace from the start and end of a String  returning
762
     * an empty String if {@code null} input.</p>
763
     *
764
     * <p>This is similar to {@link #trimToEmpty(String)} but removes whitespace.
765
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
766
     *
767
     * <pre>
768
     * StringUtils.stripToEmpty(null)     = ""
769
     * StringUtils.stripToEmpty("")       = ""
770
     * StringUtils.stripToEmpty("   ")    = ""
771
     * StringUtils.stripToEmpty("abc")    = "abc"
772
     * StringUtils.stripToEmpty("  abc")  = "abc"
773
     * StringUtils.stripToEmpty("abc  ")  = "abc"
774
     * StringUtils.stripToEmpty(" abc ")  = "abc"
775
     * StringUtils.stripToEmpty(" ab c ") = "ab c"
776
     * </pre>
777
     *
778
     * @param str  the String to be stripped, may be null
779
     * @return the trimmed String, or an empty String if {@code null} input
780
     * @since 2.0
781
     */
782
    public static String stripToEmpty(final String str) {
783 2 1. stripToEmpty : negated conditional → KILLED
2. stripToEmpty : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripToEmpty to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str == null ? EMPTY : strip(str, null);
784
    }
785
786
    /**
787
     * <p>Strips any of a set of characters from the start and end of a String.
788
     * This is similar to {@link String#trim()} but allows the characters
789
     * to be stripped to be controlled.</p>
790
     *
791
     * <p>A {@code null} input String returns {@code null}.
792
     * An empty string ("") input returns the empty string.</p>
793
     *
794
     * <p>If the stripChars String is {@code null}, whitespace is
795
     * stripped as defined by {@link Character#isWhitespace(char)}.
796
     * Alternatively use {@link #strip(String)}.</p>
797
     *
798
     * <pre>
799
     * StringUtils.strip(null, *)          = null
800
     * StringUtils.strip("", *)            = ""
801
     * StringUtils.strip("abc", null)      = "abc"
802
     * StringUtils.strip("  abc", null)    = "abc"
803
     * StringUtils.strip("abc  ", null)    = "abc"
804
     * StringUtils.strip(" abc ", null)    = "abc"
805
     * StringUtils.strip("  abcyx", "xyz") = "  abc"
806
     * </pre>
807
     *
808
     * @param str  the String to remove characters from, may be null
809
     * @param stripChars  the characters to remove, null treated as whitespace
810
     * @return the stripped String, {@code null} if null String input
811
     */
812
    public static String strip(String str, final String stripChars) {
813 1 1. strip : negated conditional → KILLED
        if (isEmpty(str)) {
814 1 1. strip : mutated return of Object value for org/apache/commons/lang3/StringUtils::strip to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
815
        }
816
        str = stripStart(str, stripChars);
817 1 1. strip : mutated return of Object value for org/apache/commons/lang3/StringUtils::strip to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return stripEnd(str, stripChars);
818
    }
819
    
820
    /**
821
     * <p>Strips any of a set of characters from the start of a String.</p>
822
     *
823
     * <p>A {@code null} input String returns {@code null}.
824
     * An empty string ("") input returns the empty string.</p>
825
     *
826
     * <p>If the stripChars String is {@code null}, whitespace is
827
     * stripped as defined by {@link Character#isWhitespace(char)}.</p>
828
     *
829
     * <pre>
830
     * StringUtils.stripStart(null, *)          = null
831
     * StringUtils.stripStart("", *)            = ""
832
     * StringUtils.stripStart("abc", "")        = "abc"
833
     * StringUtils.stripStart("abc", null)      = "abc"
834
     * StringUtils.stripStart("  abc", null)    = "abc"
835
     * StringUtils.stripStart("abc  ", null)    = "abc  "
836
     * StringUtils.stripStart(" abc ", null)    = "abc "
837
     * StringUtils.stripStart("yxabc  ", "xyz") = "abc  "
838
     * </pre>
839
     *
840
     * @param str  the String to remove characters from, may be null
841
     * @param stripChars  the characters to remove, null treated as whitespace
842
     * @return the stripped String, {@code null} if null String input
843
     */
844
    public static String stripStart(final String str, final String stripChars) {
845
        int strLen;
846 2 1. stripStart : negated conditional → KILLED
2. stripStart : negated conditional → KILLED
        if (str == null || (strLen = str.length()) == 0) {
847 1 1. stripStart : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripStart to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
848
        }
849
        int start = 0;
850 1 1. stripStart : negated conditional → KILLED
        if (stripChars == null) {
851 2 1. stripStart : negated conditional → KILLED
2. stripStart : negated conditional → KILLED
            while (start != strLen && Character.isWhitespace(str.charAt(start))) {
852 1 1. stripStart : Changed increment from 1 to -1 → KILLED
                start++;
853
            }
854 1 1. stripStart : negated conditional → KILLED
        } else if (stripChars.isEmpty()) {
855 1 1. stripStart : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripStart to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
856
        } else {
857 2 1. stripStart : negated conditional → KILLED
2. stripStart : negated conditional → KILLED
            while (start != strLen && stripChars.indexOf(str.charAt(start)) != INDEX_NOT_FOUND) {
858 1 1. stripStart : Changed increment from 1 to -1 → KILLED
                start++;
859
            }
860
        }
861 1 1. stripStart : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripStart to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(start);
862
    }
863
864
    /**
865
     * <p>Strips any of a set of characters from the end of a String.</p>
866
     *
867
     * <p>A {@code null} input String returns {@code null}.
868
     * An empty string ("") input returns the empty string.</p>
869
     *
870
     * <p>If the stripChars String is {@code null}, whitespace is
871
     * stripped as defined by {@link Character#isWhitespace(char)}.</p>
872
     *
873
     * <pre>
874
     * StringUtils.stripEnd(null, *)          = null
875
     * StringUtils.stripEnd("", *)            = ""
876
     * StringUtils.stripEnd("abc", "")        = "abc"
877
     * StringUtils.stripEnd("abc", null)      = "abc"
878
     * StringUtils.stripEnd("  abc", null)    = "  abc"
879
     * StringUtils.stripEnd("abc  ", null)    = "abc"
880
     * StringUtils.stripEnd(" abc ", null)    = " abc"
881
     * StringUtils.stripEnd("  abcyx", "xyz") = "  abc"
882
     * StringUtils.stripEnd("120.00", ".0")   = "12"
883
     * </pre>
884
     *
885
     * @param str  the String to remove characters from, may be null
886
     * @param stripChars  the set of characters to remove, null treated as whitespace
887
     * @return the stripped String, {@code null} if null String input
888
     */
889
    public static String stripEnd(final String str, final String stripChars) {
890
        int end;
891 2 1. stripEnd : negated conditional → KILLED
2. stripEnd : negated conditional → KILLED
        if (str == null || (end = str.length()) == 0) {
892 1 1. stripEnd : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
893
        }
894
895 1 1. stripEnd : negated conditional → KILLED
        if (stripChars == null) {
896 3 1. stripEnd : Replaced integer subtraction with addition → KILLED
2. stripEnd : negated conditional → KILLED
3. stripEnd : negated conditional → KILLED
            while (end != 0 && Character.isWhitespace(str.charAt(end - 1))) {
897 1 1. stripEnd : Changed increment from -1 to 1 → KILLED
                end--;
898
            }
899 1 1. stripEnd : negated conditional → KILLED
        } else if (stripChars.isEmpty()) {
900 1 1. stripEnd : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
901
        } else {
902 3 1. stripEnd : Replaced integer subtraction with addition → KILLED
2. stripEnd : negated conditional → KILLED
3. stripEnd : negated conditional → KILLED
            while (end != 0 && stripChars.indexOf(str.charAt(end - 1)) != INDEX_NOT_FOUND) {
903 1 1. stripEnd : Changed increment from -1 to 1 → KILLED
                end--;
904
            }
905
        }
906 1 1. stripEnd : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(0, end);
907
    }
908
909
    // StripAll
910
    //-----------------------------------------------------------------------
911
    /**
912
     * <p>Strips whitespace from the start and end of every String in an array.
913
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
914
     *
915
     * <p>A new array is returned each time, except for length zero.
916
     * A {@code null} array will return {@code null}.
917
     * An empty array will return itself.
918
     * A {@code null} array entry will be ignored.</p>
919
     *
920
     * <pre>
921
     * StringUtils.stripAll(null)             = null
922
     * StringUtils.stripAll([])               = []
923
     * StringUtils.stripAll(["abc", "  abc"]) = ["abc", "abc"]
924
     * StringUtils.stripAll(["abc  ", null])  = ["abc", null]
925
     * </pre>
926
     *
927
     * @param strs  the array to remove whitespace from, may be null
928
     * @return the stripped Strings, {@code null} if null array input
929
     */
930
    public static String[] stripAll(final String... strs) {
931 1 1. stripAll : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAll to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return stripAll(strs, null);
932
    }
933
934
    /**
935
     * <p>Strips any of a set of characters from the start and end of every
936
     * String in an array.</p>
937
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
938
     *
939
     * <p>A new array is returned each time, except for length zero.
940
     * A {@code null} array will return {@code null}.
941
     * An empty array will return itself.
942
     * A {@code null} array entry will be ignored.
943
     * A {@code null} stripChars will strip whitespace as defined by
944
     * {@link Character#isWhitespace(char)}.</p>
945
     *
946
     * <pre>
947
     * StringUtils.stripAll(null, *)                = null
948
     * StringUtils.stripAll([], *)                  = []
949
     * StringUtils.stripAll(["abc", "  abc"], null) = ["abc", "abc"]
950
     * StringUtils.stripAll(["abc  ", null], null)  = ["abc", null]
951
     * StringUtils.stripAll(["abc  ", null], "yz")  = ["abc  ", null]
952
     * StringUtils.stripAll(["yabcz", null], "yz")  = ["abc", null]
953
     * </pre>
954
     *
955
     * @param strs  the array to remove characters from, may be null
956
     * @param stripChars  the characters to remove, null treated as whitespace
957
     * @return the stripped Strings, {@code null} if null array input
958
     */
959
    public static String[] stripAll(final String[] strs, final String stripChars) {
960
        int strsLen;
961 2 1. stripAll : negated conditional → KILLED
2. stripAll : negated conditional → KILLED
        if (strs == null || (strsLen = strs.length) == 0) {
962 1 1. stripAll : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAll to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return strs;
963
        }
964
        final String[] newArr = new String[strsLen];
965 3 1. stripAll : changed conditional boundary → KILLED
2. stripAll : Changed increment from 1 to -1 → KILLED
3. stripAll : negated conditional → KILLED
        for (int i = 0; i < strsLen; i++) {
966
            newArr[i] = strip(strs[i], stripChars);
967
        }
968 1 1. stripAll : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAll to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return newArr;
969
    }
970
971
    /**
972
     * <p>Removes diacritics (~= accents) from a string. The case will not be altered.</p>
973
     * <p>For instance, '&agrave;' will be replaced by 'a'.</p>
974
     * <p>Note that ligatures will be left as is.</p>
975
     *
976
     * <pre>
977
     * StringUtils.stripAccents(null)                = null
978
     * StringUtils.stripAccents("")                  = ""
979
     * StringUtils.stripAccents("control")           = "control"
980
     * StringUtils.stripAccents("&eacute;clair")     = "eclair"
981
     * </pre>
982
     *
983
     * @param input String to be stripped
984
     * @return input text with diacritics removed
985
     *
986
     * @since 3.0
987
     */
988
    // See also Lucene's ASCIIFoldingFilter (Lucene 2.9) that replaces accented characters by their unaccented equivalent (and uncommitted bug fix: https://issues.apache.org/jira/browse/LUCENE-1343?focusedCommentId=12858907&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_12858907).
989
    public static String stripAccents(final String input) {
990 1 1. stripAccents : negated conditional → KILLED
        if(input == null) {
991 1 1. stripAccents : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAccents to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
992
        }
993
        final Pattern pattern = Pattern.compile("\\p{InCombiningDiacriticalMarks}+");//$NON-NLS-1$
994
        final StringBuilder decomposed = new StringBuilder(Normalizer.normalize(input, Normalizer.Form.NFD));
995 1 1. stripAccents : removed call to org/apache/commons/lang3/StringUtils::convertRemainingAccentCharacters → KILLED
        convertRemainingAccentCharacters(decomposed);
996
        // Note that this doesn't correctly remove ligatures...
997 1 1. stripAccents : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAccents to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return pattern.matcher(decomposed).replaceAll(StringUtils.EMPTY);
998
    }
999
1000
    private static void convertRemainingAccentCharacters(final StringBuilder decomposed) {
1001 3 1. convertRemainingAccentCharacters : changed conditional boundary → KILLED
2. convertRemainingAccentCharacters : Changed increment from 1 to -1 → KILLED
3. convertRemainingAccentCharacters : negated conditional → KILLED
        for (int i = 0; i < decomposed.length(); i++) {
1002 1 1. convertRemainingAccentCharacters : negated conditional → KILLED
            if (decomposed.charAt(i) == '\u0141') {
1003
                decomposed.deleteCharAt(i);
1004
                decomposed.insert(i, 'L');
1005 1 1. convertRemainingAccentCharacters : negated conditional → KILLED
            } else if (decomposed.charAt(i) == '\u0142') {
1006
                decomposed.deleteCharAt(i);
1007
                decomposed.insert(i, 'l');
1008
            }
1009
        }
1010
    }
1011
1012
    // Equals
1013
    //-----------------------------------------------------------------------
1014
    /**
1015
     * <p>Compares two CharSequences, returning {@code true} if they represent
1016
     * equal sequences of characters.</p>
1017
     *
1018
     * <p>{@code null}s are handled without exceptions. Two {@code null}
1019
     * references are considered to be equal. The comparison is case sensitive.</p>
1020
     *
1021
     * <pre>
1022
     * StringUtils.equals(null, null)   = true
1023
     * StringUtils.equals(null, "abc")  = false
1024
     * StringUtils.equals("abc", null)  = false
1025
     * StringUtils.equals("abc", "abc") = true
1026
     * StringUtils.equals("abc", "ABC") = false
1027
     * </pre>
1028
     *
1029
     * @see Object#equals(Object)
1030
     * @param cs1  the first CharSequence, may be {@code null}
1031
     * @param cs2  the second CharSequence, may be {@code null}
1032
     * @return {@code true} if the CharSequences are equal (case-sensitive), or both {@code null}
1033
     * @since 3.0 Changed signature from equals(String, String) to equals(CharSequence, CharSequence)
1034
     */
1035
    public static boolean equals(final CharSequence cs1, final CharSequence cs2) {
1036 1 1. equals : negated conditional → KILLED
        if (cs1 == cs2) {
1037 1 1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
1038
        }
1039 2 1. equals : negated conditional → KILLED
2. equals : negated conditional → KILLED
        if (cs1 == null || cs2 == null) {
1040 1 1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
1041
        }
1042 1 1. equals : negated conditional → KILLED
        if (cs1.length() != cs2.length()) {
1043 1 1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
1044
        }
1045 2 1. equals : negated conditional → KILLED
2. equals : negated conditional → KILLED
        if (cs1 instanceof String && cs2 instanceof String) {
1046 1 1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return cs1.equals(cs2);
1047
        }
1048 1 1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.regionMatches(cs1, false, 0, cs2, 0, cs1.length());
1049
    }
1050
1051
    /**
1052
     * <p>Compares two CharSequences, returning {@code true} if they represent
1053
     * equal sequences of characters, ignoring case.</p>
1054
     *
1055
     * <p>{@code null}s are handled without exceptions. Two {@code null}
1056
     * references are considered equal. Comparison is case insensitive.</p>
1057
     *
1058
     * <pre>
1059
     * StringUtils.equalsIgnoreCase(null, null)   = true
1060
     * StringUtils.equalsIgnoreCase(null, "abc")  = false
1061
     * StringUtils.equalsIgnoreCase("abc", null)  = false
1062
     * StringUtils.equalsIgnoreCase("abc", "abc") = true
1063
     * StringUtils.equalsIgnoreCase("abc", "ABC") = true
1064
     * </pre>
1065
     *
1066
     * @param str1  the first CharSequence, may be null
1067
     * @param str2  the second CharSequence, may be null
1068
     * @return {@code true} if the CharSequence are equal, case insensitive, or
1069
     *  both {@code null}
1070
     * @since 3.0 Changed signature from equalsIgnoreCase(String, String) to equalsIgnoreCase(CharSequence, CharSequence)
1071
     */
1072
    public static boolean equalsIgnoreCase(final CharSequence str1, final CharSequence str2) {
1073 2 1. equalsIgnoreCase : negated conditional → KILLED
2. equalsIgnoreCase : negated conditional → KILLED
        if (str1 == null || str2 == null) {
1074 2 1. equalsIgnoreCase : negated conditional → KILLED
2. equalsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return str1 == str2;
1075 1 1. equalsIgnoreCase : negated conditional → KILLED
        } else if (str1 == str2) {
1076 1 1. equalsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
1077 1 1. equalsIgnoreCase : negated conditional → KILLED
        } else if (str1.length() != str2.length()) {
1078 1 1. equalsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
1079
        } else {
1080 1 1. equalsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return CharSequenceUtils.regionMatches(str1, true, 0, str2, 0, str1.length());
1081
        }
1082
    }
1083
1084
    // Compare
1085
    //-----------------------------------------------------------------------
1086
    /**
1087
     * <p>Compare two Strings lexicographically, as per {@link String#compareTo(String)}, returning :</p>
1088
     * <ul>
1089
     *  <li>{@code int = 0}, if {@code str1} is equal to {@code str2} (or both {@code null})</li>
1090
     *  <li>{@code int < 0}, if {@code str1} is less than {@code str2}</li>
1091
     *  <li>{@code int > 0}, if {@code str1} is greater than {@code str2}</li>
1092
     * </ul>
1093
     *
1094
     * <p>This is a {@code null} safe version of :</p>
1095
     * <blockquote><pre>str1.compareTo(str2)</pre></blockquote>
1096
     *
1097
     * <p>{@code null} value is considered less than non-{@code null} value.
1098
     * Two {@code null} references are considered equal.</p>
1099
     *
1100
     * <pre>
1101
     * StringUtils.compare(null, null)   = 0
1102
     * StringUtils.compare(null , "a")   &lt; 0
1103
     * StringUtils.compare("a", null)    &gt; 0
1104
     * StringUtils.compare("abc", "abc") = 0
1105
     * StringUtils.compare("a", "b")     &lt; 0
1106
     * StringUtils.compare("b", "a")     &gt; 0
1107
     * StringUtils.compare("a", "B")     &gt; 0
1108
     * StringUtils.compare("ab", "abc")  &lt; 0
1109
     * </pre>
1110
     *
1111
     * @see #compare(String, String, boolean)
1112
     * @see String#compareTo(String)
1113
     * @param str1  the String to compare from
1114
     * @param str2  the String to compare to
1115
     * @return &lt; 0, 0, &gt; 0, if {@code str1} is respectively less, equal ou greater than {@code str2}
1116
     * @since 3.5
1117
     */
1118
    public static int compare(final String str1, final String str2) {
1119 1 1. compare : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return compare(str1, str2, true);
1120
    }
1121
1122
    /**
1123
     * <p>Compare two Strings lexicographically, as per {@link String#compareTo(String)}, returning :</p>
1124
     * <ul>
1125
     *  <li>{@code int = 0}, if {@code str1} is equal to {@code str2} (or both {@code null})</li>
1126
     *  <li>{@code int < 0}, if {@code str1} is less than {@code str2}</li>
1127
     *  <li>{@code int > 0}, if {@code str1} is greater than {@code str2}</li>
1128
     * </ul>
1129
     *
1130
     * <p>This is a {@code null} safe version of :</p>
1131
     * <blockquote><pre>str1.compareTo(str2)</pre></blockquote>
1132
     *
1133
     * <p>{@code null} inputs are handled according to the {@code nullIsLess} parameter.
1134
     * Two {@code null} references are considered equal.</p>
1135
     *
1136
     * <pre>
1137
     * StringUtils.compare(null, null, *)     = 0
1138
     * StringUtils.compare(null , "a", true)  &lt; 0
1139
     * StringUtils.compare(null , "a", false) &gt; 0
1140
     * StringUtils.compare("a", null, true)   &gt; 0
1141
     * StringUtils.compare("a", null, false)  &lt; 0
1142
     * StringUtils.compare("abc", "abc", *)   = 0
1143
     * StringUtils.compare("a", "b", *)       &lt; 0
1144
     * StringUtils.compare("b", "a", *)       &gt; 0
1145
     * StringUtils.compare("a", "B", *)       &gt; 0
1146
     * StringUtils.compare("ab", "abc", *)    &lt; 0
1147
     * </pre>
1148
     *
1149
     * @see String#compareTo(String)
1150
     * @param str1  the String to compare from
1151
     * @param str2  the String to compare to
1152
     * @param nullIsLess  whether consider {@code null} value less than non-{@code null} value
1153
     * @return &lt; 0, 0, &gt; 0, if {@code str1} is respectively less, equal ou greater than {@code str2}
1154
     * @since 3.5
1155
     */
1156
    public static int compare(final String str1, final String str2, final boolean nullIsLess) {
1157 1 1. compare : negated conditional → KILLED
        if (str1 == str2) {
1158 1 1. compare : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return 0;
1159
        }
1160 1 1. compare : negated conditional → KILLED
        if (str1 == null) {
1161 2 1. compare : negated conditional → KILLED
2. compare : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return nullIsLess ? -1 : 1;
1162
        }
1163 1 1. compare : negated conditional → KILLED
        if (str2 == null) {
1164 2 1. compare : negated conditional → KILLED
2. compare : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return nullIsLess ? 1 : - 1;
1165
        }
1166 1 1. compare : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return str1.compareTo(str2);
1167
    }
1168
1169
    /**
1170
     * <p>Compare two Strings lexicographically, ignoring case differences,
1171
     * as per {@link String#compareToIgnoreCase(String)}, returning :</p>
1172
     * <ul>
1173
     *  <li>{@code int = 0}, if {@code str1} is equal to {@code str2} (or both {@code null})</li>
1174
     *  <li>{@code int < 0}, if {@code str1} is less than {@code str2}</li>
1175
     *  <li>{@code int > 0}, if {@code str1} is greater than {@code str2}</li>
1176
     * </ul>
1177
     *
1178
     * <p>This is a {@code null} safe version of :</p>
1179
     * <blockquote><pre>str1.compareToIgnoreCase(str2)</pre></blockquote>
1180
     *
1181
     * <p>{@code null} value is considered less than non-{@code null} value.
1182
     * Two {@code null} references are considered equal.
1183
     * Comparison is case insensitive.</p>
1184
     *
1185
     * <pre>
1186
     * StringUtils.compareIgnoreCase(null, null)   = 0
1187
     * StringUtils.compareIgnoreCase(null , "a")   &lt; 0
1188
     * StringUtils.compareIgnoreCase("a", null)    &gt; 0
1189
     * StringUtils.compareIgnoreCase("abc", "abc") = 0
1190
     * StringUtils.compareIgnoreCase("abc", "ABC") = 0
1191
     * StringUtils.compareIgnoreCase("a", "b")     &lt; 0
1192
     * StringUtils.compareIgnoreCase("b", "a")     &gt; 0
1193
     * StringUtils.compareIgnoreCase("a", "B")     &lt; 0
1194
     * StringUtils.compareIgnoreCase("A", "b")     &lt; 0
1195
     * StringUtils.compareIgnoreCase("ab", "ABC")  &lt; 0
1196
     * </pre>
1197
     *
1198
     * @see #compareIgnoreCase(String, String, boolean)
1199
     * @see String#compareToIgnoreCase(String)
1200
     * @param str1  the String to compare from
1201
     * @param str2  the String to compare to
1202
     * @return &lt; 0, 0, &gt; 0, if {@code str1} is respectively less, equal ou greater than {@code str2},
1203
     *          ignoring case differences.
1204
     * @since 3.5
1205
     */
1206
    public static int compareIgnoreCase(final String str1, final String str2) {
1207 1 1. compareIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return compareIgnoreCase(str1, str2, true);
1208
    }
1209
1210
    /**
1211
     * <p>Compare two Strings lexicographically, ignoring case differences,
1212
     * as per {@link String#compareToIgnoreCase(String)}, returning :</p>
1213
     * <ul>
1214
     *  <li>{@code int = 0}, if {@code str1} is equal to {@code str2} (or both {@code null})</li>
1215
     *  <li>{@code int < 0}, if {@code str1} is less than {@code str2}</li>
1216
     *  <li>{@code int > 0}, if {@code str1} is greater than {@code str2}</li>
1217
     * </ul>
1218
     *
1219
     * <p>This is a {@code null} safe version of :</p>
1220
     * <blockquote><pre>str1.compareToIgnoreCase(str2)</pre></blockquote>
1221
     *
1222
     * <p>{@code null} inputs are handled according to the {@code nullIsLess} parameter.
1223
     * Two {@code null} references are considered equal.
1224
     * Comparison is case insensitive.</p>
1225
     *
1226
     * <pre>
1227
     * StringUtils.compareIgnoreCase(null, null, *)     = 0
1228
     * StringUtils.compareIgnoreCase(null , "a", true)  &lt; 0
1229
     * StringUtils.compareIgnoreCase(null , "a", false) &gt; 0
1230
     * StringUtils.compareIgnoreCase("a", null, true)   &gt; 0
1231
     * StringUtils.compareIgnoreCase("a", null, false)  &lt; 0
1232
     * StringUtils.compareIgnoreCase("abc", "abc", *)   = 0
1233
     * StringUtils.compareIgnoreCase("abc", "ABC", *)   = 0
1234
     * StringUtils.compareIgnoreCase("a", "b", *)       &lt; 0
1235
     * StringUtils.compareIgnoreCase("b", "a", *)       &gt; 0
1236
     * StringUtils.compareIgnoreCase("a", "B", *)       &lt; 0
1237
     * StringUtils.compareIgnoreCase("A", "b", *)       &lt; 0
1238
     * StringUtils.compareIgnoreCase("ab", "abc", *)    &lt; 0
1239
     * </pre>
1240
     *
1241
     * @see String#compareToIgnoreCase(String)
1242
     * @param str1  the String to compare from
1243
     * @param str2  the String to compare to
1244
     * @param nullIsLess  whether consider {@code null} value less than non-{@code null} value
1245
     * @return &lt; 0, 0, &gt; 0, if {@code str1} is respectively less, equal ou greater than {@code str2},
1246
     *          ignoring case differences.
1247
     * @since 3.5
1248
     */
1249
    public static int compareIgnoreCase(final String str1, final String str2, final boolean nullIsLess) {
1250 1 1. compareIgnoreCase : negated conditional → KILLED
        if (str1 == str2) {
1251 1 1. compareIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return 0;
1252
        }
1253 1 1. compareIgnoreCase : negated conditional → KILLED
        if (str1 == null) {
1254 2 1. compareIgnoreCase : negated conditional → KILLED
2. compareIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return nullIsLess ? -1 : 1;
1255
        }
1256 1 1. compareIgnoreCase : negated conditional → KILLED
        if (str2 == null) {
1257 2 1. compareIgnoreCase : negated conditional → KILLED
2. compareIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return nullIsLess ? 1 : - 1;
1258
        }
1259 1 1. compareIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return str1.compareToIgnoreCase(str2);
1260
    }
1261
1262
    /**
1263
     * <p>Compares given <code>string</code> to a CharSequences vararg of <code>searchStrings</code>,
1264
     * returning {@code true} if the <code>string</code> is equal to any of the <code>searchStrings</code>.</p>
1265
     *
1266
     * <pre>
1267
     * StringUtils.equalsAny(null, (CharSequence[]) null) = false
1268
     * StringUtils.equalsAny(null, null, null)    = true
1269
     * StringUtils.equalsAny(null, "abc", "def")  = false
1270
     * StringUtils.equalsAny("abc", null, "def")  = false
1271
     * StringUtils.equalsAny("abc", "abc", "def") = true
1272
     * StringUtils.equalsAny("abc", "ABC", "DEF") = false
1273
     * </pre>
1274
     *
1275
     * @param string to compare, may be {@code null}.
1276
     * @param searchStrings a vararg of strings, may be {@code null}.
1277
     * @return {@code true} if the string is equal (case-sensitive) to any other element of <code>searchStrings</code>;
1278
     * {@code false} if <code>searchStrings</code> is null or contains no matches.
1279
     * @since 3.5
1280
     */
1281
    public static boolean equalsAny(final CharSequence string, final CharSequence... searchStrings) {
1282 1 1. equalsAny : negated conditional → KILLED
        if (ArrayUtils.isNotEmpty(searchStrings)) {
1283 3 1. equalsAny : changed conditional boundary → KILLED
2. equalsAny : Changed increment from 1 to -1 → KILLED
3. equalsAny : negated conditional → KILLED
            for (final CharSequence next : searchStrings) {
1284 1 1. equalsAny : negated conditional → KILLED
                if (equals(string, next)) {
1285 1 1. equalsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                    return true;
1286
                }
1287
            }
1288
        }
1289 1 1. equalsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
1290
    }
1291
1292
1293
    /**
1294
     * <p>Compares given <code>string</code> to a CharSequences vararg of <code>searchStrings</code>,
1295
     * returning {@code true} if the <code>string</code> is equal to any of the <code>searchStrings</code>, ignoring case.</p>
1296
     *
1297
     * <pre>
1298
     * StringUtils.equalsAnyIgnoreCase(null, (CharSequence[]) null) = false
1299
     * StringUtils.equalsAnyIgnoreCase(null, null, null)    = true
1300
     * StringUtils.equalsAnyIgnoreCase(null, "abc", "def")  = false
1301
     * StringUtils.equalsAnyIgnoreCase("abc", null, "def")  = false
1302
     * StringUtils.equalsAnyIgnoreCase("abc", "abc", "def") = true
1303
     * StringUtils.equalsAnyIgnoreCase("abc", "ABC", "DEF") = true
1304
     * </pre>
1305
     *
1306
     * @param string to compare, may be {@code null}.
1307
     * @param searchStrings a vararg of strings, may be {@code null}.
1308
     * @return {@code true} if the string is equal (case-insensitive) to any other element of <code>searchStrings</code>;
1309
     * {@code false} if <code>searchStrings</code> is null or contains no matches.
1310
     * @since 3.5
1311
     */
1312
    public static boolean equalsAnyIgnoreCase(final CharSequence string, final CharSequence...searchStrings) {
1313 1 1. equalsAnyIgnoreCase : negated conditional → KILLED
        if (ArrayUtils.isNotEmpty(searchStrings)) {
1314 3 1. equalsAnyIgnoreCase : changed conditional boundary → KILLED
2. equalsAnyIgnoreCase : Changed increment from 1 to -1 → KILLED
3. equalsAnyIgnoreCase : negated conditional → KILLED
            for (final CharSequence next : searchStrings) {
1315 1 1. equalsAnyIgnoreCase : negated conditional → KILLED
                if (equalsIgnoreCase(string, next)) {
1316 1 1. equalsAnyIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                    return true;
1317
                }
1318
            }
1319
        }
1320 1 1. equalsAnyIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
1321
    }
1322
1323
    // IndexOf
1324
    //-----------------------------------------------------------------------
1325
    /**
1326
     * <p>Finds the first index within a CharSequence, handling {@code null}.
1327
     * This method uses {@link String#indexOf(int, int)} if possible.</p>
1328
     *
1329
     * <p>A {@code null} or empty ("") CharSequence will return {@code INDEX_NOT_FOUND (-1)}.</p>
1330
     *
1331
     * <pre>
1332
     * StringUtils.indexOf(null, *)         = -1
1333
     * StringUtils.indexOf("", *)           = -1
1334
     * StringUtils.indexOf("aabaabaa", 'a') = 0
1335
     * StringUtils.indexOf("aabaabaa", 'b') = 2
1336
     * </pre>
1337
     *
1338
     * @param seq  the CharSequence to check, may be null
1339
     * @param searchChar  the character to find
1340
     * @return the first index of the search character,
1341
     *  -1 if no match or {@code null} string input
1342
     * @since 2.0
1343
     * @since 3.0 Changed signature from indexOf(String, int) to indexOf(CharSequence, int)
1344
     */
1345
    public static int indexOf(final CharSequence seq, final int searchChar) {
1346 1 1. indexOf : negated conditional → KILLED
        if (isEmpty(seq)) {
1347 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1348
        }
1349 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.indexOf(seq, searchChar, 0);
1350
    }
1351
1352
    /**
1353
     * <p>Finds the first index within a CharSequence from a start position,
1354
     * handling {@code null}.
1355
     * This method uses {@link String#indexOf(int, int)} if possible.</p>
1356
     *
1357
     * <p>A {@code null} or empty ("") CharSequence will return {@code (INDEX_NOT_FOUND) -1}.
1358
     * A negative start position is treated as zero.
1359
     * A start position greater than the string length returns {@code -1}.</p>
1360
     *
1361
     * <pre>
1362
     * StringUtils.indexOf(null, *, *)          = -1
1363
     * StringUtils.indexOf("", *, *)            = -1
1364
     * StringUtils.indexOf("aabaabaa", 'b', 0)  = 2
1365
     * StringUtils.indexOf("aabaabaa", 'b', 3)  = 5
1366
     * StringUtils.indexOf("aabaabaa", 'b', 9)  = -1
1367
     * StringUtils.indexOf("aabaabaa", 'b', -1) = 2
1368
     * </pre>
1369
     *
1370
     * @param seq  the CharSequence to check, may be null
1371
     * @param searchChar  the character to find
1372
     * @param startPos  the start position, negative treated as zero
1373
     * @return the first index of the search character (always &ge; startPos),
1374
     *  -1 if no match or {@code null} string input
1375
     * @since 2.0
1376
     * @since 3.0 Changed signature from indexOf(String, int, int) to indexOf(CharSequence, int, int)
1377
     */
1378
    public static int indexOf(final CharSequence seq, final int searchChar, final int startPos) {
1379 1 1. indexOf : negated conditional → KILLED
        if (isEmpty(seq)) {
1380 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1381
        }
1382 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.indexOf(seq, searchChar, startPos);
1383
    }
1384
1385
    /**
1386
     * <p>Finds the first index within a CharSequence, handling {@code null}.
1387
     * This method uses {@link String#indexOf(String, int)} if possible.</p>
1388
     *
1389
     * <p>A {@code null} CharSequence will return {@code -1}.</p>
1390
     *
1391
     * <pre>
1392
     * StringUtils.indexOf(null, *)          = -1
1393
     * StringUtils.indexOf(*, null)          = -1
1394
     * StringUtils.indexOf("", "")           = 0
1395
     * StringUtils.indexOf("", *)            = -1 (except when * = "")
1396
     * StringUtils.indexOf("aabaabaa", "a")  = 0
1397
     * StringUtils.indexOf("aabaabaa", "b")  = 2
1398
     * StringUtils.indexOf("aabaabaa", "ab") = 1
1399
     * StringUtils.indexOf("aabaabaa", "")   = 0
1400
     * </pre>
1401
     *
1402
     * @param seq  the CharSequence to check, may be null
1403
     * @param searchSeq  the CharSequence to find, may be null
1404
     * @return the first index of the search CharSequence,
1405
     *  -1 if no match or {@code null} string input
1406
     * @since 2.0
1407
     * @since 3.0 Changed signature from indexOf(String, String) to indexOf(CharSequence, CharSequence)
1408
     */
1409
    public static int indexOf(final CharSequence seq, final CharSequence searchSeq) {
1410 2 1. indexOf : negated conditional → KILLED
2. indexOf : negated conditional → KILLED
        if (seq == null || searchSeq == null) {
1411 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1412
        }
1413 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.indexOf(seq, searchSeq, 0);
1414
    }
1415
1416
    /**
1417
     * <p>Finds the first index within a CharSequence, handling {@code null}.
1418
     * This method uses {@link String#indexOf(String, int)} if possible.</p>
1419
     *
1420
     * <p>A {@code null} CharSequence will return {@code -1}.
1421
     * A negative start position is treated as zero.
1422
     * An empty ("") search CharSequence always matches.
1423
     * A start position greater than the string length only matches
1424
     * an empty search CharSequence.</p>
1425
     *
1426
     * <pre>
1427
     * StringUtils.indexOf(null, *, *)          = -1
1428
     * StringUtils.indexOf(*, null, *)          = -1
1429
     * StringUtils.indexOf("", "", 0)           = 0
1430
     * StringUtils.indexOf("", *, 0)            = -1 (except when * = "")
1431
     * StringUtils.indexOf("aabaabaa", "a", 0)  = 0
1432
     * StringUtils.indexOf("aabaabaa", "b", 0)  = 2
1433
     * StringUtils.indexOf("aabaabaa", "ab", 0) = 1
1434
     * StringUtils.indexOf("aabaabaa", "b", 3)  = 5
1435
     * StringUtils.indexOf("aabaabaa", "b", 9)  = -1
1436
     * StringUtils.indexOf("aabaabaa", "b", -1) = 2
1437
     * StringUtils.indexOf("aabaabaa", "", 2)   = 2
1438
     * StringUtils.indexOf("abc", "", 9)        = 3
1439
     * </pre>
1440
     *
1441
     * @param seq  the CharSequence to check, may be null
1442
     * @param searchSeq  the CharSequence to find, may be null
1443
     * @param startPos  the start position, negative treated as zero
1444
     * @return the first index of the search CharSequence (always &ge; startPos),
1445
     *  -1 if no match or {@code null} string input
1446
     * @since 2.0
1447
     * @since 3.0 Changed signature from indexOf(String, String, int) to indexOf(CharSequence, CharSequence, int)
1448
     */
1449
    public static int indexOf(final CharSequence seq, final CharSequence searchSeq, final int startPos) {
1450 2 1. indexOf : negated conditional → KILLED
2. indexOf : negated conditional → KILLED
        if (seq == null || searchSeq == null) {
1451 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1452
        }
1453 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.indexOf(seq, searchSeq, startPos);
1454
    }
1455
1456
    /**
1457
     * <p>Finds the n-th index within a CharSequence, handling {@code null}.
1458
     * This method uses {@link String#indexOf(String)} if possible.</p>
1459
     * <p><b>Note:</b> The code starts looking for a match at the start of the target,
1460
     * incrementing the starting index by one after each successful match
1461
     * (unless {@code searchStr} is an empty string in which case the position
1462
     * is never incremented and {@code 0} is returned immediately).
1463
     * This means that matches may overlap.</p>
1464
     * <p>A {@code null} CharSequence will return {@code -1}.</p>
1465
     *
1466
     * <pre>
1467
     * StringUtils.ordinalIndexOf(null, *, *)          = -1
1468
     * StringUtils.ordinalIndexOf(*, null, *)          = -1
1469
     * StringUtils.ordinalIndexOf("", "", *)           = 0
1470
     * StringUtils.ordinalIndexOf("aabaabaa", "a", 1)  = 0
1471
     * StringUtils.ordinalIndexOf("aabaabaa", "a", 2)  = 1
1472
     * StringUtils.ordinalIndexOf("aabaabaa", "b", 1)  = 2
1473
     * StringUtils.ordinalIndexOf("aabaabaa", "b", 2)  = 5
1474
     * StringUtils.ordinalIndexOf("aabaabaa", "ab", 1) = 1
1475
     * StringUtils.ordinalIndexOf("aabaabaa", "ab", 2) = 4
1476
     * StringUtils.ordinalIndexOf("aabaabaa", "", 1)   = 0
1477
     * StringUtils.ordinalIndexOf("aabaabaa", "", 2)   = 0
1478
     * </pre>
1479
     *
1480
     * <p>Matches may overlap:</p>
1481
     * <pre>
1482
     * StringUtils.ordinalIndexOf("ababab","aba", 1)   = 0
1483
     * StringUtils.ordinalIndexOf("ababab","aba", 2)   = 2
1484
     * StringUtils.ordinalIndexOf("ababab","aba", 3)   = -1
1485
     *
1486
     * StringUtils.ordinalIndexOf("abababab", "abab", 1) = 0
1487
     * StringUtils.ordinalIndexOf("abababab", "abab", 2) = 2
1488
     * StringUtils.ordinalIndexOf("abababab", "abab", 3) = 4
1489
     * StringUtils.ordinalIndexOf("abababab", "abab", 4) = -1
1490
     * </pre>
1491
     *
1492
     * <p>Note that 'head(CharSequence str, int n)' may be implemented as: </p>
1493
     *
1494
     * <pre>
1495
     *   str.substring(0, lastOrdinalIndexOf(str, "\n", n))
1496
     * </pre>
1497
     *
1498
     * @param str  the CharSequence to check, may be null
1499
     * @param searchStr  the CharSequence to find, may be null
1500
     * @param ordinal  the n-th {@code searchStr} to find
1501
     * @return the n-th index of the search CharSequence,
1502
     *  {@code -1} ({@code INDEX_NOT_FOUND}) if no match or {@code null} string input
1503
     * @since 2.1
1504
     * @since 3.0 Changed signature from ordinalIndexOf(String, String, int) to ordinalIndexOf(CharSequence, CharSequence, int)
1505
     */
1506
    public static int ordinalIndexOf(final CharSequence str, final CharSequence searchStr, final int ordinal) {
1507 1 1. ordinalIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return ordinalIndexOf(str, searchStr, ordinal, false);
1508
    }
1509
1510
    /**
1511
     * <p>Finds the n-th index within a String, handling {@code null}.
1512
     * This method uses {@link String#indexOf(String)} if possible.</p>
1513
     * <p>Note that matches may overlap<p>
1514
     *
1515
     * <p>A {@code null} CharSequence will return {@code -1}.</p>
1516
     *
1517
     * @param str  the CharSequence to check, may be null
1518
     * @param searchStr  the CharSequence to find, may be null
1519
     * @param ordinal  the n-th {@code searchStr} to find, overlapping matches are allowed.
1520
     * @param lastIndex true if lastOrdinalIndexOf() otherwise false if ordinalIndexOf()
1521
     * @return the n-th index of the search CharSequence,
1522
     *  {@code -1} ({@code INDEX_NOT_FOUND}) if no match or {@code null} string input
1523
     */
1524
    // Shared code between ordinalIndexOf(String,String,int) and lastOrdinalIndexOf(String,String,int)
1525
    private static int ordinalIndexOf(final CharSequence str, final CharSequence searchStr, final int ordinal, final boolean lastIndex) {
1526 4 1. ordinalIndexOf : changed conditional boundary → KILLED
2. ordinalIndexOf : negated conditional → KILLED
3. ordinalIndexOf : negated conditional → KILLED
4. ordinalIndexOf : negated conditional → KILLED
        if (str == null || searchStr == null || ordinal <= 0) {
1527 1 1. ordinalIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1528
        }
1529 1 1. ordinalIndexOf : negated conditional → KILLED
        if (searchStr.length() == 0) {
1530 2 1. ordinalIndexOf : negated conditional → KILLED
2. ordinalIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return lastIndex ? str.length() : 0;
1531
        }
1532
        int found = 0;
1533
        // set the initial index beyond the end of the string
1534
        // this is to allow for the initial index decrement/increment
1535 1 1. ordinalIndexOf : negated conditional → KILLED
        int index = lastIndex ? str.length() : INDEX_NOT_FOUND;
1536
        do {
1537 1 1. ordinalIndexOf : negated conditional → KILLED
            if (lastIndex) {
1538 1 1. ordinalIndexOf : Replaced integer subtraction with addition → KILLED
                index = CharSequenceUtils.lastIndexOf(str, searchStr, index - 1); // step backwards thru string
1539
            } else {
1540 1 1. ordinalIndexOf : Replaced integer addition with subtraction → KILLED
                index = CharSequenceUtils.indexOf(str, searchStr, index + 1); // step forwards through string
1541
            }
1542 2 1. ordinalIndexOf : changed conditional boundary → KILLED
2. ordinalIndexOf : negated conditional → KILLED
            if (index < 0) {
1543 1 1. ordinalIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return index;
1544
            }
1545 1 1. ordinalIndexOf : Changed increment from 1 to -1 → KILLED
            found++;
1546 2 1. ordinalIndexOf : changed conditional boundary → KILLED
2. ordinalIndexOf : negated conditional → KILLED
        } while (found < ordinal);
1547 1 1. ordinalIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return index;
1548
    }
1549
1550
    /**
1551
     * <p>Case in-sensitive find of the first index within a CharSequence.</p>
1552
     *
1553
     * <p>A {@code null} CharSequence will return {@code -1}.
1554
     * A negative start position is treated as zero.
1555
     * An empty ("") search CharSequence always matches.
1556
     * A start position greater than the string length only matches
1557
     * an empty search CharSequence.</p>
1558
     *
1559
     * <pre>
1560
     * StringUtils.indexOfIgnoreCase(null, *)          = -1
1561
     * StringUtils.indexOfIgnoreCase(*, null)          = -1
1562
     * StringUtils.indexOfIgnoreCase("", "")           = 0
1563
     * StringUtils.indexOfIgnoreCase("aabaabaa", "a")  = 0
1564
     * StringUtils.indexOfIgnoreCase("aabaabaa", "b")  = 2
1565
     * StringUtils.indexOfIgnoreCase("aabaabaa", "ab") = 1
1566
     * </pre>
1567
     *
1568
     * @param str  the CharSequence to check, may be null
1569
     * @param searchStr  the CharSequence to find, may be null
1570
     * @return the first index of the search CharSequence,
1571
     *  -1 if no match or {@code null} string input
1572
     * @since 2.5
1573
     * @since 3.0 Changed signature from indexOfIgnoreCase(String, String) to indexOfIgnoreCase(CharSequence, CharSequence)
1574
     */
1575
    public static int indexOfIgnoreCase(final CharSequence str, final CharSequence searchStr) {
1576 1 1. indexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return indexOfIgnoreCase(str, searchStr, 0);
1577
    }
1578
1579
    /**
1580
     * <p>Case in-sensitive find of the first index within a CharSequence
1581
     * from the specified position.</p>
1582
     *
1583
     * <p>A {@code null} CharSequence will return {@code -1}.
1584
     * A negative start position is treated as zero.
1585
     * An empty ("") search CharSequence always matches.
1586
     * A start position greater than the string length only matches
1587
     * an empty search CharSequence.</p>
1588
     *
1589
     * <pre>
1590
     * StringUtils.indexOfIgnoreCase(null, *, *)          = -1
1591
     * StringUtils.indexOfIgnoreCase(*, null, *)          = -1
1592
     * StringUtils.indexOfIgnoreCase("", "", 0)           = 0
1593
     * StringUtils.indexOfIgnoreCase("aabaabaa", "A", 0)  = 0
1594
     * StringUtils.indexOfIgnoreCase("aabaabaa", "B", 0)  = 2
1595
     * StringUtils.indexOfIgnoreCase("aabaabaa", "AB", 0) = 1
1596
     * StringUtils.indexOfIgnoreCase("aabaabaa", "B", 3)  = 5
1597
     * StringUtils.indexOfIgnoreCase("aabaabaa", "B", 9)  = -1
1598
     * StringUtils.indexOfIgnoreCase("aabaabaa", "B", -1) = 2
1599
     * StringUtils.indexOfIgnoreCase("aabaabaa", "", 2)   = 2
1600
     * StringUtils.indexOfIgnoreCase("abc", "", 9)        = -1
1601
     * </pre>
1602
     *
1603
     * @param str  the CharSequence to check, may be null
1604
     * @param searchStr  the CharSequence to find, may be null
1605
     * @param startPos  the start position, negative treated as zero
1606
     * @return the first index of the search CharSequence (always &ge; startPos),
1607
     *  -1 if no match or {@code null} string input
1608
     * @since 2.5
1609
     * @since 3.0 Changed signature from indexOfIgnoreCase(String, String, int) to indexOfIgnoreCase(CharSequence, CharSequence, int)
1610
     */
1611
    public static int indexOfIgnoreCase(final CharSequence str, final CharSequence searchStr, int startPos) {
1612 2 1. indexOfIgnoreCase : negated conditional → KILLED
2. indexOfIgnoreCase : negated conditional → KILLED
        if (str == null || searchStr == null) {
1613 1 1. indexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1614
        }
1615 2 1. indexOfIgnoreCase : changed conditional boundary → SURVIVED
2. indexOfIgnoreCase : negated conditional → KILLED
        if (startPos < 0) {
1616
            startPos = 0;
1617
        }
1618 2 1. indexOfIgnoreCase : Replaced integer subtraction with addition → SURVIVED
2. indexOfIgnoreCase : Replaced integer addition with subtraction → KILLED
        final int endLimit = str.length() - searchStr.length() + 1;
1619 2 1. indexOfIgnoreCase : changed conditional boundary → SURVIVED
2. indexOfIgnoreCase : negated conditional → KILLED
        if (startPos > endLimit) {
1620 1 1. indexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1621
        }
1622 1 1. indexOfIgnoreCase : negated conditional → KILLED
        if (searchStr.length() == 0) {
1623 1 1. indexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return startPos;
1624
        }
1625 3 1. indexOfIgnoreCase : changed conditional boundary → SURVIVED
2. indexOfIgnoreCase : Changed increment from 1 to -1 → TIMED_OUT
3. indexOfIgnoreCase : negated conditional → KILLED
        for (int i = startPos; i < endLimit; i++) {
1626 1 1. indexOfIgnoreCase : negated conditional → KILLED
            if (CharSequenceUtils.regionMatches(str, true, i, searchStr, 0, searchStr.length())) {
1627 1 1. indexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return i;
1628
            }
1629
        }
1630 1 1. indexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return INDEX_NOT_FOUND;
1631
    }
1632
1633
    // LastIndexOf
1634
    //-----------------------------------------------------------------------
1635
    /**
1636
     * <p>Finds the last index within a CharSequence, handling {@code null}.
1637
     * This method uses {@link String#lastIndexOf(int)} if possible.</p>
1638
     *
1639
     * <p>A {@code null} or empty ("") CharSequence will return {@code -1}.</p>
1640
     *
1641
     * <pre>
1642
     * StringUtils.lastIndexOf(null, *)         = -1
1643
     * StringUtils.lastIndexOf("", *)           = -1
1644
     * StringUtils.lastIndexOf("aabaabaa", 'a') = 7
1645
     * StringUtils.lastIndexOf("aabaabaa", 'b') = 5
1646
     * </pre>
1647
     *
1648
     * @param seq  the CharSequence to check, may be null
1649
     * @param searchChar  the character to find
1650
     * @return the last index of the search character,
1651
     *  -1 if no match or {@code null} string input
1652
     * @since 2.0
1653
     * @since 3.0 Changed signature from lastIndexOf(String, int) to lastIndexOf(CharSequence, int)
1654
     */
1655
    public static int lastIndexOf(final CharSequence seq, final int searchChar) {
1656 1 1. lastIndexOf : negated conditional → KILLED
        if (isEmpty(seq)) {
1657 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1658
        }
1659 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.lastIndexOf(seq, searchChar, seq.length());
1660
    }
1661
1662
    /**
1663
     * <p>Finds the last index within a CharSequence from a start position,
1664
     * handling {@code null}.
1665
     * This method uses {@link String#lastIndexOf(int, int)} if possible.</p>
1666
     *
1667
     * <p>A {@code null} or empty ("") CharSequence will return {@code -1}.
1668
     * A negative start position returns {@code -1}.
1669
     * A start position greater than the string length searches the whole string.
1670
     * The search starts at the startPos and works backwards; matches starting after the start
1671
     * position are ignored.
1672
     * </p>
1673
     *
1674
     * <pre>
1675
     * StringUtils.lastIndexOf(null, *, *)          = -1
1676
     * StringUtils.lastIndexOf("", *,  *)           = -1
1677
     * StringUtils.lastIndexOf("aabaabaa", 'b', 8)  = 5
1678
     * StringUtils.lastIndexOf("aabaabaa", 'b', 4)  = 2
1679
     * StringUtils.lastIndexOf("aabaabaa", 'b', 0)  = -1
1680
     * StringUtils.lastIndexOf("aabaabaa", 'b', 9)  = 5
1681
     * StringUtils.lastIndexOf("aabaabaa", 'b', -1) = -1
1682
     * StringUtils.lastIndexOf("aabaabaa", 'a', 0)  = 0
1683
     * </pre>
1684
     *
1685
     * @param seq  the CharSequence to check, may be null
1686
     * @param searchChar  the character to find
1687
     * @param startPos  the start position
1688
     * @return the last index of the search character (always &le; startPos),
1689
     *  -1 if no match or {@code null} string input
1690
     * @since 2.0
1691
     * @since 3.0 Changed signature from lastIndexOf(String, int, int) to lastIndexOf(CharSequence, int, int)
1692
     */
1693
    public static int lastIndexOf(final CharSequence seq, final int searchChar, final int startPos) {
1694 1 1. lastIndexOf : negated conditional → KILLED
        if (isEmpty(seq)) {
1695 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1696
        }
1697 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.lastIndexOf(seq, searchChar, startPos);
1698
    }
1699
1700
    /**
1701
     * <p>Finds the last index within a CharSequence, handling {@code null}.
1702
     * This method uses {@link String#lastIndexOf(String)} if possible.</p>
1703
     *
1704
     * <p>A {@code null} CharSequence will return {@code -1}.</p>
1705
     *
1706
     * <pre>
1707
     * StringUtils.lastIndexOf(null, *)          = -1
1708
     * StringUtils.lastIndexOf(*, null)          = -1
1709
     * StringUtils.lastIndexOf("", "")           = 0
1710
     * StringUtils.lastIndexOf("aabaabaa", "a")  = 7
1711
     * StringUtils.lastIndexOf("aabaabaa", "b")  = 5
1712
     * StringUtils.lastIndexOf("aabaabaa", "ab") = 4
1713
     * StringUtils.lastIndexOf("aabaabaa", "")   = 8
1714
     * </pre>
1715
     *
1716
     * @param seq  the CharSequence to check, may be null
1717
     * @param searchSeq  the CharSequence to find, may be null
1718
     * @return the last index of the search String,
1719
     *  -1 if no match or {@code null} string input
1720
     * @since 2.0
1721
     * @since 3.0 Changed signature from lastIndexOf(String, String) to lastIndexOf(CharSequence, CharSequence)
1722
     */
1723
    public static int lastIndexOf(final CharSequence seq, final CharSequence searchSeq) {
1724 2 1. lastIndexOf : negated conditional → KILLED
2. lastIndexOf : negated conditional → KILLED
        if (seq == null || searchSeq == null) {
1725 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1726
        }
1727 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.lastIndexOf(seq, searchSeq, seq.length());
1728
    }
1729
1730
    /**
1731
     * <p>Finds the n-th last index within a String, handling {@code null}.
1732
     * This method uses {@link String#lastIndexOf(String)}.</p>
1733
     *
1734
     * <p>A {@code null} String will return {@code -1}.</p>
1735
     *
1736
     * <pre>
1737
     * StringUtils.lastOrdinalIndexOf(null, *, *)          = -1
1738
     * StringUtils.lastOrdinalIndexOf(*, null, *)          = -1
1739
     * StringUtils.lastOrdinalIndexOf("", "", *)           = 0
1740
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "a", 1)  = 7
1741
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "a", 2)  = 6
1742
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "b", 1)  = 5
1743
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "b", 2)  = 2
1744
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "ab", 1) = 4
1745
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "ab", 2) = 1
1746
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "", 1)   = 8
1747
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "", 2)   = 8
1748
     * </pre>
1749
     *
1750
     * <p>Note that 'tail(CharSequence str, int n)' may be implemented as: </p>
1751
     *
1752
     * <pre>
1753
     *   str.substring(lastOrdinalIndexOf(str, "\n", n) + 1)
1754
     * </pre>
1755
     *
1756
     * @param str  the CharSequence to check, may be null
1757
     * @param searchStr  the CharSequence to find, may be null
1758
     * @param ordinal  the n-th last {@code searchStr} to find
1759
     * @return the n-th last index of the search CharSequence,
1760
     *  {@code -1} ({@code INDEX_NOT_FOUND}) if no match or {@code null} string input
1761
     * @since 2.5
1762
     * @since 3.0 Changed signature from lastOrdinalIndexOf(String, String, int) to lastOrdinalIndexOf(CharSequence, CharSequence, int)
1763
     */
1764
    public static int lastOrdinalIndexOf(final CharSequence str, final CharSequence searchStr, final int ordinal) {
1765 1 1. lastOrdinalIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return ordinalIndexOf(str, searchStr, ordinal, true);
1766
    }
1767
1768
    /**
1769
     * <p>Finds the last index within a CharSequence, handling {@code null}.
1770
     * This method uses {@link String#lastIndexOf(String, int)} if possible.</p>
1771
     *
1772
     * <p>A {@code null} CharSequence will return {@code -1}.
1773
     * A negative start position returns {@code -1}.
1774
     * An empty ("") search CharSequence always matches unless the start position is negative.
1775
     * A start position greater than the string length searches the whole string.
1776
     * The search starts at the startPos and works backwards; matches starting after the start
1777
     * position are ignored.
1778
     * </p>
1779
     *
1780
     * <pre>
1781
     * StringUtils.lastIndexOf(null, *, *)          = -1
1782
     * StringUtils.lastIndexOf(*, null, *)          = -1
1783
     * StringUtils.lastIndexOf("aabaabaa", "a", 8)  = 7
1784
     * StringUtils.lastIndexOf("aabaabaa", "b", 8)  = 5
1785
     * StringUtils.lastIndexOf("aabaabaa", "ab", 8) = 4
1786
     * StringUtils.lastIndexOf("aabaabaa", "b", 9)  = 5
1787
     * StringUtils.lastIndexOf("aabaabaa", "b", -1) = -1
1788
     * StringUtils.lastIndexOf("aabaabaa", "a", 0)  = 0
1789
     * StringUtils.lastIndexOf("aabaabaa", "b", 0)  = -1
1790
     * StringUtils.lastIndexOf("aabaabaa", "b", 1)  = -1
1791
     * StringUtils.lastIndexOf("aabaabaa", "b", 2)  = 2
1792
     * StringUtils.lastIndexOf("aabaabaa", "ba", 2)  = -1
1793
     * StringUtils.lastIndexOf("aabaabaa", "ba", 2)  = 2
1794
     * </pre>
1795
     *
1796
     * @param seq  the CharSequence to check, may be null
1797
     * @param searchSeq  the CharSequence to find, may be null
1798
     * @param startPos  the start position, negative treated as zero
1799
     * @return the last index of the search CharSequence (always &le; startPos),
1800
     *  -1 if no match or {@code null} string input
1801
     * @since 2.0
1802
     * @since 3.0 Changed signature from lastIndexOf(String, String, int) to lastIndexOf(CharSequence, CharSequence, int)
1803
     */
1804
    public static int lastIndexOf(final CharSequence seq, final CharSequence searchSeq, final int startPos) {
1805 2 1. lastIndexOf : negated conditional → KILLED
2. lastIndexOf : negated conditional → KILLED
        if (seq == null || searchSeq == null) {
1806 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1807
        }
1808 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.lastIndexOf(seq, searchSeq, startPos);
1809
    }
1810
1811
    /**
1812
     * <p>Case in-sensitive find of the last index within a CharSequence.</p>
1813
     *
1814
     * <p>A {@code null} CharSequence will return {@code -1}.
1815
     * A negative start position returns {@code -1}.
1816
     * An empty ("") search CharSequence always matches unless the start position is negative.
1817
     * A start position greater than the string length searches the whole string.</p>
1818
     *
1819
     * <pre>
1820
     * StringUtils.lastIndexOfIgnoreCase(null, *)          = -1
1821
     * StringUtils.lastIndexOfIgnoreCase(*, null)          = -1
1822
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "A")  = 7
1823
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B")  = 5
1824
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "AB") = 4
1825
     * </pre>
1826
     *
1827
     * @param str  the CharSequence to check, may be null
1828
     * @param searchStr  the CharSequence to find, may be null
1829
     * @return the first index of the search CharSequence,
1830
     *  -1 if no match or {@code null} string input
1831
     * @since 2.5
1832
     * @since 3.0 Changed signature from lastIndexOfIgnoreCase(String, String) to lastIndexOfIgnoreCase(CharSequence, CharSequence)
1833
     */
1834
    public static int lastIndexOfIgnoreCase(final CharSequence str, final CharSequence searchStr) {
1835 2 1. lastIndexOfIgnoreCase : negated conditional → KILLED
2. lastIndexOfIgnoreCase : negated conditional → KILLED
        if (str == null || searchStr == null) {
1836 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1837
        }
1838 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return lastIndexOfIgnoreCase(str, searchStr, str.length());
1839
    }
1840
1841
    /**
1842
     * <p>Case in-sensitive find of the last index within a CharSequence
1843
     * from the specified position.</p>
1844
     *
1845
     * <p>A {@code null} CharSequence will return {@code -1}.
1846
     * A negative start position returns {@code -1}.
1847
     * An empty ("") search CharSequence always matches unless the start position is negative.
1848
     * A start position greater than the string length searches the whole string.
1849
     * The search starts at the startPos and works backwards; matches starting after the start
1850
     * position are ignored.
1851
     * </p>
1852
     *
1853
     * <pre>
1854
     * StringUtils.lastIndexOfIgnoreCase(null, *, *)          = -1
1855
     * StringUtils.lastIndexOfIgnoreCase(*, null, *)          = -1
1856
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "A", 8)  = 7
1857
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 8)  = 5
1858
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "AB", 8) = 4
1859
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 9)  = 5
1860
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", -1) = -1
1861
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "A", 0)  = 0
1862
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 0)  = -1
1863
     * </pre>
1864
     *
1865
     * @param str  the CharSequence to check, may be null
1866
     * @param searchStr  the CharSequence to find, may be null
1867
     * @param startPos  the start position
1868
     * @return the last index of the search CharSequence (always &le; startPos),
1869
     *  -1 if no match or {@code null} input
1870
     * @since 2.5
1871
     * @since 3.0 Changed signature from lastIndexOfIgnoreCase(String, String, int) to lastIndexOfIgnoreCase(CharSequence, CharSequence, int)
1872
     */
1873
    public static int lastIndexOfIgnoreCase(final CharSequence str, final CharSequence searchStr, int startPos) {
1874 2 1. lastIndexOfIgnoreCase : negated conditional → KILLED
2. lastIndexOfIgnoreCase : negated conditional → KILLED
        if (str == null || searchStr == null) {
1875 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1876
        }
1877 3 1. lastIndexOfIgnoreCase : changed conditional boundary → SURVIVED
2. lastIndexOfIgnoreCase : Replaced integer subtraction with addition → SURVIVED
3. lastIndexOfIgnoreCase : negated conditional → KILLED
        if (startPos > str.length() - searchStr.length()) {
1878 1 1. lastIndexOfIgnoreCase : Replaced integer subtraction with addition → SURVIVED
            startPos = str.length() - searchStr.length();
1879
        }
1880 2 1. lastIndexOfIgnoreCase : changed conditional boundary → KILLED
2. lastIndexOfIgnoreCase : negated conditional → KILLED
        if (startPos < 0) {
1881 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1882
        }
1883 1 1. lastIndexOfIgnoreCase : negated conditional → KILLED
        if (searchStr.length() == 0) {
1884 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return startPos;
1885
        }
1886
1887 3 1. lastIndexOfIgnoreCase : changed conditional boundary → KILLED
2. lastIndexOfIgnoreCase : Changed increment from -1 to 1 → KILLED
3. lastIndexOfIgnoreCase : negated conditional → KILLED
        for (int i = startPos; i >= 0; i--) {
1888 1 1. lastIndexOfIgnoreCase : negated conditional → KILLED
            if (CharSequenceUtils.regionMatches(str, true, i, searchStr, 0, searchStr.length())) {
1889 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return i;
1890
            }
1891
        }
1892 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return INDEX_NOT_FOUND;
1893
    }
1894
1895
    // Contains
1896
    //-----------------------------------------------------------------------
1897
    /**
1898
     * <p>Checks if CharSequence contains a search character, handling {@code null}.
1899
     * This method uses {@link String#indexOf(int)} if possible.</p>
1900
     *
1901
     * <p>A {@code null} or empty ("") CharSequence will return {@code false}.</p>
1902
     *
1903
     * <pre>
1904
     * StringUtils.contains(null, *)    = false
1905
     * StringUtils.contains("", *)      = false
1906
     * StringUtils.contains("abc", 'a') = true
1907
     * StringUtils.contains("abc", 'z') = false
1908
     * </pre>
1909
     *
1910
     * @param seq  the CharSequence to check, may be null
1911
     * @param searchChar  the character to find
1912
     * @return true if the CharSequence contains the search character,
1913
     *  false if not or {@code null} string input
1914
     * @since 2.0
1915
     * @since 3.0 Changed signature from contains(String, int) to contains(CharSequence, int)
1916
     */
1917
    public static boolean contains(final CharSequence seq, final int searchChar) {
1918 1 1. contains : negated conditional → KILLED
        if (isEmpty(seq)) {
1919 1 1. contains : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
1920
        }
1921 3 1. contains : changed conditional boundary → KILLED
2. contains : negated conditional → KILLED
3. contains : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.indexOf(seq, searchChar, 0) >= 0;
1922
    }
1923
1924
    /**
1925
     * <p>Checks if CharSequence contains a search CharSequence, handling {@code null}.
1926
     * This method uses {@link String#indexOf(String)} if possible.</p>
1927
     *
1928
     * <p>A {@code null} CharSequence will return {@code false}.</p>
1929
     *
1930
     * <pre>
1931
     * StringUtils.contains(null, *)     = false
1932
     * StringUtils.contains(*, null)     = false
1933
     * StringUtils.contains("", "")      = true
1934
     * StringUtils.contains("abc", "")   = true
1935
     * StringUtils.contains("abc", "a")  = true
1936
     * StringUtils.contains("abc", "z")  = false
1937
     * </pre>
1938
     *
1939
     * @param seq  the CharSequence to check, may be null
1940
     * @param searchSeq  the CharSequence to find, may be null
1941
     * @return true if the CharSequence contains the search CharSequence,
1942
     *  false if not or {@code null} string input
1943
     * @since 2.0
1944
     * @since 3.0 Changed signature from contains(String, String) to contains(CharSequence, CharSequence)
1945
     */
1946
    public static boolean contains(final CharSequence seq, final CharSequence searchSeq) {
1947 2 1. contains : negated conditional → KILLED
2. contains : negated conditional → KILLED
        if (seq == null || searchSeq == null) {
1948 1 1. contains : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
1949
        }
1950 3 1. contains : changed conditional boundary → KILLED
2. contains : negated conditional → KILLED
3. contains : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.indexOf(seq, searchSeq, 0) >= 0;
1951
    }
1952
1953
    /**
1954
     * <p>Checks if CharSequence contains a search CharSequence irrespective of case,
1955
     * handling {@code null}. Case-insensitivity is defined as by
1956
     * {@link String#equalsIgnoreCase(String)}.
1957
     *
1958
     * <p>A {@code null} CharSequence will return {@code false}.</p>
1959
     *
1960
     * <pre>
1961
     * StringUtils.containsIgnoreCase(null, *) = false
1962
     * StringUtils.containsIgnoreCase(*, null) = false
1963
     * StringUtils.containsIgnoreCase("", "") = true
1964
     * StringUtils.containsIgnoreCase("abc", "") = true
1965
     * StringUtils.containsIgnoreCase("abc", "a") = true
1966
     * StringUtils.containsIgnoreCase("abc", "z") = false
1967
     * StringUtils.containsIgnoreCase("abc", "A") = true
1968
     * StringUtils.containsIgnoreCase("abc", "Z") = false
1969
     * </pre>
1970
     *
1971
     * @param str  the CharSequence to check, may be null
1972
     * @param searchStr  the CharSequence to find, may be null
1973
     * @return true if the CharSequence contains the search CharSequence irrespective of
1974
     * case or false if not or {@code null} string input
1975
     * @since 3.0 Changed signature from containsIgnoreCase(String, String) to containsIgnoreCase(CharSequence, CharSequence)
1976
     */
1977
    public static boolean containsIgnoreCase(final CharSequence str, final CharSequence searchStr) {
1978 2 1. containsIgnoreCase : negated conditional → KILLED
2. containsIgnoreCase : negated conditional → KILLED
        if (str == null || searchStr == null) {
1979 1 1. containsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
1980
        }
1981
        final int len = searchStr.length();
1982 1 1. containsIgnoreCase : Replaced integer subtraction with addition → SURVIVED
        final int max = str.length() - len;
1983 3 1. containsIgnoreCase : Changed increment from 1 to -1 → TIMED_OUT
2. containsIgnoreCase : changed conditional boundary → KILLED
3. containsIgnoreCase : negated conditional → KILLED
        for (int i = 0; i <= max; i++) {
1984 1 1. containsIgnoreCase : negated conditional → KILLED
            if (CharSequenceUtils.regionMatches(str, true, i, searchStr, 0, len)) {
1985 1 1. containsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return true;
1986
            }
1987
        }
1988 1 1. containsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
1989
    }
1990
1991
    /**
1992
     * <p>Check whether the given CharSequence contains any whitespace characters.</p>
1993
     * 
1994
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
1995
     * 
1996
     * @param seq the CharSequence to check (may be {@code null})
1997
     * @return {@code true} if the CharSequence is not empty and
1998
     * contains at least 1 (breaking) whitespace character
1999
     * @since 3.0
2000
     */
2001
    // From org.springframework.util.StringUtils, under Apache License 2.0
2002
    public static boolean containsWhitespace(final CharSequence seq) {
2003 1 1. containsWhitespace : negated conditional → KILLED
        if (isEmpty(seq)) {
2004 1 1. containsWhitespace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2005
        }
2006
        final int strLen = seq.length();
2007 3 1. containsWhitespace : changed conditional boundary → KILLED
2. containsWhitespace : Changed increment from 1 to -1 → KILLED
3. containsWhitespace : negated conditional → KILLED
        for (int i = 0; i < strLen; i++) {
2008 1 1. containsWhitespace : negated conditional → KILLED
            if (Character.isWhitespace(seq.charAt(i))) {
2009 1 1. containsWhitespace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return true;
2010
            }
2011
        }
2012 1 1. containsWhitespace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
2013
    }
2014
2015
    // IndexOfAny chars
2016
    //-----------------------------------------------------------------------
2017
    /**
2018
     * <p>Search a CharSequence to find the first index of any
2019
     * character in the given set of characters.</p>
2020
     *
2021
     * <p>A {@code null} String will return {@code -1}.
2022
     * A {@code null} or zero length search array will return {@code -1}.</p>
2023
     *
2024
     * <pre>
2025
     * StringUtils.indexOfAny(null, *)                = -1
2026
     * StringUtils.indexOfAny("", *)                  = -1
2027
     * StringUtils.indexOfAny(*, null)                = -1
2028
     * StringUtils.indexOfAny(*, [])                  = -1
2029
     * StringUtils.indexOfAny("zzabyycdxx",['z','a']) = 0
2030
     * StringUtils.indexOfAny("zzabyycdxx",['b','y']) = 3
2031
     * StringUtils.indexOfAny("aba", ['z'])           = -1
2032
     * </pre>
2033
     *
2034
     * @param cs  the CharSequence to check, may be null
2035
     * @param searchChars  the chars to search for, may be null
2036
     * @return the index of any of the chars, -1 if no match or null input
2037
     * @since 2.0
2038
     * @since 3.0 Changed signature from indexOfAny(String, char[]) to indexOfAny(CharSequence, char...)
2039
     */
2040
    public static int indexOfAny(final CharSequence cs, final char... searchChars) {
2041 2 1. indexOfAny : negated conditional → KILLED
2. indexOfAny : negated conditional → KILLED
        if (isEmpty(cs) || ArrayUtils.isEmpty(searchChars)) {
2042 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
2043
        }
2044
        final int csLen = cs.length();
2045 1 1. indexOfAny : Replaced integer subtraction with addition → SURVIVED
        final int csLast = csLen - 1;
2046
        final int searchLen = searchChars.length;
2047 1 1. indexOfAny : Replaced integer subtraction with addition → SURVIVED
        final int searchLast = searchLen - 1;
2048 3 1. indexOfAny : changed conditional boundary → KILLED
2. indexOfAny : Changed increment from 1 to -1 → KILLED
3. indexOfAny : negated conditional → KILLED
        for (int i = 0; i < csLen; i++) {
2049
            final char ch = cs.charAt(i);
2050 3 1. indexOfAny : changed conditional boundary → KILLED
2. indexOfAny : Changed increment from 1 to -1 → KILLED
3. indexOfAny : negated conditional → KILLED
            for (int j = 0; j < searchLen; j++) {
2051 1 1. indexOfAny : negated conditional → KILLED
                if (searchChars[j] == ch) {
2052 5 1. indexOfAny : changed conditional boundary → SURVIVED
2. indexOfAny : changed conditional boundary → SURVIVED
3. indexOfAny : negated conditional → KILLED
4. indexOfAny : negated conditional → KILLED
5. indexOfAny : negated conditional → KILLED
                    if (i < csLast && j < searchLast && Character.isHighSurrogate(ch)) {
2053
                        // ch is a supplementary character
2054 3 1. indexOfAny : Replaced integer addition with subtraction → KILLED
2. indexOfAny : Replaced integer addition with subtraction → KILLED
3. indexOfAny : negated conditional → KILLED
                        if (searchChars[j + 1] == cs.charAt(i + 1)) {
2055 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                            return i;
2056
                        }
2057
                    } else {
2058 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                        return i;
2059
                    }
2060
                }
2061
            }
2062
        }
2063 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return INDEX_NOT_FOUND;
2064
    }
2065
2066
    /**
2067
     * <p>Search a CharSequence to find the first index of any
2068
     * character in the given set of characters.</p>
2069
     *
2070
     * <p>A {@code null} String will return {@code -1}.
2071
     * A {@code null} search string will return {@code -1}.</p>
2072
     *
2073
     * <pre>
2074
     * StringUtils.indexOfAny(null, *)            = -1
2075
     * StringUtils.indexOfAny("", *)              = -1
2076
     * StringUtils.indexOfAny(*, null)            = -1
2077
     * StringUtils.indexOfAny(*, "")              = -1
2078
     * StringUtils.indexOfAny("zzabyycdxx", "za") = 0
2079
     * StringUtils.indexOfAny("zzabyycdxx", "by") = 3
2080
     * StringUtils.indexOfAny("aba","z")          = -1
2081
     * </pre>
2082
     *
2083
     * @param cs  the CharSequence to check, may be null
2084
     * @param searchChars  the chars to search for, may be null
2085
     * @return the index of any of the chars, -1 if no match or null input
2086
     * @since 2.0
2087
     * @since 3.0 Changed signature from indexOfAny(String, String) to indexOfAny(CharSequence, String)
2088
     */
2089
    public static int indexOfAny(final CharSequence cs, final String searchChars) {
2090 2 1. indexOfAny : negated conditional → KILLED
2. indexOfAny : negated conditional → KILLED
        if (isEmpty(cs) || isEmpty(searchChars)) {
2091 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
2092
        }
2093 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return indexOfAny(cs, searchChars.toCharArray());
2094
    }
2095
2096
    // ContainsAny
2097
    //-----------------------------------------------------------------------
2098
    /**
2099
     * <p>Checks if the CharSequence contains any character in the given
2100
     * set of characters.</p>
2101
     *
2102
     * <p>A {@code null} CharSequence will return {@code false}.
2103
     * A {@code null} or zero length search array will return {@code false}.</p>
2104
     *
2105
     * <pre>
2106
     * StringUtils.containsAny(null, *)                = false
2107
     * StringUtils.containsAny("", *)                  = false
2108
     * StringUtils.containsAny(*, null)                = false
2109
     * StringUtils.containsAny(*, [])                  = false
2110
     * StringUtils.containsAny("zzabyycdxx",['z','a']) = true
2111
     * StringUtils.containsAny("zzabyycdxx",['b','y']) = true
2112
     * StringUtils.containsAny("zzabyycdxx",['z','y']) = true
2113
     * StringUtils.containsAny("aba", ['z'])           = false
2114
     * </pre>
2115
     *
2116
     * @param cs  the CharSequence to check, may be null
2117
     * @param searchChars  the chars to search for, may be null
2118
     * @return the {@code true} if any of the chars are found,
2119
     * {@code false} if no match or null input
2120
     * @since 2.4
2121
     * @since 3.0 Changed signature from containsAny(String, char[]) to containsAny(CharSequence, char...)
2122
     */
2123
    public static boolean containsAny(final CharSequence cs, final char... searchChars) {
2124 2 1. containsAny : negated conditional → KILLED
2. containsAny : negated conditional → KILLED
        if (isEmpty(cs) || ArrayUtils.isEmpty(searchChars)) {
2125 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2126
        }
2127
        final int csLength = cs.length();
2128
        final int searchLength = searchChars.length;
2129 1 1. containsAny : Replaced integer subtraction with addition → KILLED
        final int csLast = csLength - 1;
2130 1 1. containsAny : Replaced integer subtraction with addition → KILLED
        final int searchLast = searchLength - 1;
2131 3 1. containsAny : changed conditional boundary → KILLED
2. containsAny : Changed increment from 1 to -1 → KILLED
3. containsAny : negated conditional → KILLED
        for (int i = 0; i < csLength; i++) {
2132
            final char ch = cs.charAt(i);
2133 3 1. containsAny : changed conditional boundary → KILLED
2. containsAny : Changed increment from 1 to -1 → KILLED
3. containsAny : negated conditional → KILLED
            for (int j = 0; j < searchLength; j++) {
2134 1 1. containsAny : negated conditional → KILLED
                if (searchChars[j] == ch) {
2135 1 1. containsAny : negated conditional → KILLED
                    if (Character.isHighSurrogate(ch)) {
2136 1 1. containsAny : negated conditional → KILLED
                        if (j == searchLast) {
2137
                            // missing low surrogate, fine, like String.indexOf(String)
2138 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                            return true;
2139
                        }
2140 5 1. containsAny : changed conditional boundary → KILLED
2. containsAny : Replaced integer addition with subtraction → KILLED
3. containsAny : Replaced integer addition with subtraction → KILLED
4. containsAny : negated conditional → KILLED
5. containsAny : negated conditional → KILLED
                        if (i < csLast && searchChars[j + 1] == cs.charAt(i + 1)) {
2141 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                            return true;
2142
                        }
2143
                    } else {
2144
                        // ch is in the Basic Multilingual Plane
2145 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                        return true;
2146
                    }
2147
                }
2148
            }
2149
        }
2150 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
2151
    }
2152
2153
    /**
2154
     * <p>
2155
     * Checks if the CharSequence contains any character in the given set of characters.
2156
     * </p>
2157
     *
2158
     * <p>
2159
     * A {@code null} CharSequence will return {@code false}. A {@code null} search CharSequence will return
2160
     * {@code false}.
2161
     * </p>
2162
     *
2163
     * <pre>
2164
     * StringUtils.containsAny(null, *)               = false
2165
     * StringUtils.containsAny("", *)                 = false
2166
     * StringUtils.containsAny(*, null)               = false
2167
     * StringUtils.containsAny(*, "")                 = false
2168
     * StringUtils.containsAny("zzabyycdxx", "za")    = true
2169
     * StringUtils.containsAny("zzabyycdxx", "by")    = true
2170
     * StringUtils.containsAny("zzabyycdxx", "zy")    = true
2171
     * StringUtils.containsAny("zzabyycdxx", "\tx")   = true
2172
     * StringUtils.containsAny("zzabyycdxx", "$.#yF") = true
2173
     * StringUtils.containsAny("aba","z")             = false
2174
     * </pre>
2175
     *
2176
     * @param cs
2177
     *            the CharSequence to check, may be null
2178
     * @param searchChars
2179
     *            the chars to search for, may be null
2180
     * @return the {@code true} if any of the chars are found, {@code false} if no match or null input
2181
     * @since 2.4
2182
     * @since 3.0 Changed signature from containsAny(String, String) to containsAny(CharSequence, CharSequence)
2183
     */
2184
    public static boolean containsAny(final CharSequence cs, final CharSequence searchChars) {
2185 1 1. containsAny : negated conditional → KILLED
        if (searchChars == null) {
2186 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2187
        }
2188 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return containsAny(cs, CharSequenceUtils.toCharArray(searchChars));
2189
    }
2190
2191
    /**
2192
     * <p>Checks if the CharSequence contains any of the CharSequences in the given array.</p>
2193
     *
2194
     * <p>
2195
     * A {@code null} {@code cs} CharSequence will return {@code false}. A {@code null} or zero
2196
     * length search array will return {@code false}.
2197
     * </p>
2198
     *
2199
     * <pre>
2200
     * StringUtils.containsAny(null, *)            = false
2201
     * StringUtils.containsAny("", *)              = false
2202
     * StringUtils.containsAny(*, null)            = false
2203
     * StringUtils.containsAny(*, [])              = false
2204
     * StringUtils.containsAny("abcd", "ab", null) = true
2205
     * StringUtils.containsAny("abcd", "ab", "cd") = true
2206
     * StringUtils.containsAny("abc", "d", "abc")  = true
2207
     * </pre>
2208
     *
2209
     * 
2210
     * @param cs The CharSequence to check, may be null
2211
     * @param searchCharSequences The array of CharSequences to search for, may be null.
2212
     * Individual CharSequences may be null as well.
2213
     * @return {@code true} if any of the search CharSequences are found, {@code false} otherwise
2214
     * @since 3.4
2215
     */
2216
    public static boolean containsAny(final CharSequence cs, final CharSequence... searchCharSequences) {
2217 2 1. containsAny : negated conditional → KILLED
2. containsAny : negated conditional → KILLED
        if (isEmpty(cs) || ArrayUtils.isEmpty(searchCharSequences)) {
2218 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2219
        }
2220 3 1. containsAny : changed conditional boundary → KILLED
2. containsAny : Changed increment from 1 to -1 → KILLED
3. containsAny : negated conditional → KILLED
        for (final CharSequence searchCharSequence : searchCharSequences) {
2221 1 1. containsAny : negated conditional → KILLED
            if (contains(cs, searchCharSequence)) {
2222 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return true;
2223
            }
2224
        }
2225 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
2226
    }
2227
2228
    // IndexOfAnyBut chars
2229
    //-----------------------------------------------------------------------
2230
    /**
2231
     * <p>Searches a CharSequence to find the first index of any
2232
     * character not in the given set of characters.</p>
2233
     *
2234
     * <p>A {@code null} CharSequence will return {@code -1}.
2235
     * A {@code null} or zero length search array will return {@code -1}.</p>
2236
     *
2237
     * <pre>
2238
     * StringUtils.indexOfAnyBut(null, *)                              = -1
2239
     * StringUtils.indexOfAnyBut("", *)                                = -1
2240
     * StringUtils.indexOfAnyBut(*, null)                              = -1
2241
     * StringUtils.indexOfAnyBut(*, [])                                = -1
2242
     * StringUtils.indexOfAnyBut("zzabyycdxx", new char[] {'z', 'a'} ) = 3
2243
     * StringUtils.indexOfAnyBut("aba", new char[] {'z'} )             = 0
2244
     * StringUtils.indexOfAnyBut("aba", new char[] {'a', 'b'} )        = -1
2245
2246
     * </pre>
2247
     *
2248
     * @param cs  the CharSequence to check, may be null
2249
     * @param searchChars  the chars to search for, may be null
2250
     * @return the index of any of the chars, -1 if no match or null input
2251
     * @since 2.0
2252
     * @since 3.0 Changed signature from indexOfAnyBut(String, char[]) to indexOfAnyBut(CharSequence, char...)
2253
     */
2254
    public static int indexOfAnyBut(final CharSequence cs, final char... searchChars) {
2255 2 1. indexOfAnyBut : negated conditional → KILLED
2. indexOfAnyBut : negated conditional → KILLED
        if (isEmpty(cs) || ArrayUtils.isEmpty(searchChars)) {
2256 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
2257
        }
2258
        final int csLen = cs.length();
2259 1 1. indexOfAnyBut : Replaced integer subtraction with addition → SURVIVED
        final int csLast = csLen - 1;
2260
        final int searchLen = searchChars.length;
2261 1 1. indexOfAnyBut : Replaced integer subtraction with addition → SURVIVED
        final int searchLast = searchLen - 1;
2262
        outer:
2263 3 1. indexOfAnyBut : changed conditional boundary → KILLED
2. indexOfAnyBut : Changed increment from 1 to -1 → KILLED
3. indexOfAnyBut : negated conditional → KILLED
        for (int i = 0; i < csLen; i++) {
2264
            final char ch = cs.charAt(i);
2265 3 1. indexOfAnyBut : changed conditional boundary → KILLED
2. indexOfAnyBut : Changed increment from 1 to -1 → KILLED
3. indexOfAnyBut : negated conditional → KILLED
            for (int j = 0; j < searchLen; j++) {
2266 1 1. indexOfAnyBut : negated conditional → KILLED
                if (searchChars[j] == ch) {
2267 5 1. indexOfAnyBut : changed conditional boundary → SURVIVED
2. indexOfAnyBut : changed conditional boundary → SURVIVED
3. indexOfAnyBut : negated conditional → KILLED
4. indexOfAnyBut : negated conditional → KILLED
5. indexOfAnyBut : negated conditional → KILLED
                    if (i < csLast && j < searchLast && Character.isHighSurrogate(ch)) {
2268 3 1. indexOfAnyBut : Replaced integer addition with subtraction → KILLED
2. indexOfAnyBut : Replaced integer addition with subtraction → KILLED
3. indexOfAnyBut : negated conditional → KILLED
                        if (searchChars[j + 1] == cs.charAt(i + 1)) {
2269
                            continue outer;
2270
                        }
2271
                    } else {
2272
                        continue outer;
2273
                    }
2274
                }
2275
            }
2276 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return i;
2277
        }
2278 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return INDEX_NOT_FOUND;
2279
    }
2280
2281
    /**
2282
     * <p>Search a CharSequence to find the first index of any
2283
     * character not in the given set of characters.</p>
2284
     *
2285
     * <p>A {@code null} CharSequence will return {@code -1}.
2286
     * A {@code null} or empty search string will return {@code -1}.</p>
2287
     *
2288
     * <pre>
2289
     * StringUtils.indexOfAnyBut(null, *)            = -1
2290
     * StringUtils.indexOfAnyBut("", *)              = -1
2291
     * StringUtils.indexOfAnyBut(*, null)            = -1
2292
     * StringUtils.indexOfAnyBut(*, "")              = -1
2293
     * StringUtils.indexOfAnyBut("zzabyycdxx", "za") = 3
2294
     * StringUtils.indexOfAnyBut("zzabyycdxx", "")   = -1
2295
     * StringUtils.indexOfAnyBut("aba","ab")         = -1
2296
     * </pre>
2297
     *
2298
     * @param seq  the CharSequence to check, may be null
2299
     * @param searchChars  the chars to search for, may be null
2300
     * @return the index of any of the chars, -1 if no match or null input
2301
     * @since 2.0
2302
     * @since 3.0 Changed signature from indexOfAnyBut(String, String) to indexOfAnyBut(CharSequence, CharSequence)
2303
     */
2304
    public static int indexOfAnyBut(final CharSequence seq, final CharSequence searchChars) {
2305 2 1. indexOfAnyBut : negated conditional → KILLED
2. indexOfAnyBut : negated conditional → KILLED
        if (isEmpty(seq) || isEmpty(searchChars)) {
2306 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
2307
        }
2308
        final int strLen = seq.length();
2309 3 1. indexOfAnyBut : changed conditional boundary → KILLED
2. indexOfAnyBut : Changed increment from 1 to -1 → KILLED
3. indexOfAnyBut : negated conditional → KILLED
        for (int i = 0; i < strLen; i++) {
2310
            final char ch = seq.charAt(i);
2311 2 1. indexOfAnyBut : changed conditional boundary → KILLED
2. indexOfAnyBut : negated conditional → KILLED
            final boolean chFound = CharSequenceUtils.indexOf(searchChars, ch, 0) >= 0;
2312 4 1. indexOfAnyBut : changed conditional boundary → SURVIVED
2. indexOfAnyBut : Replaced integer addition with subtraction → SURVIVED
3. indexOfAnyBut : negated conditional → KILLED
4. indexOfAnyBut : negated conditional → KILLED
            if (i + 1 < strLen && Character.isHighSurrogate(ch)) {
2313 1 1. indexOfAnyBut : Replaced integer addition with subtraction → KILLED
                final char ch2 = seq.charAt(i + 1);
2314 3 1. indexOfAnyBut : changed conditional boundary → SURVIVED
2. indexOfAnyBut : negated conditional → KILLED
3. indexOfAnyBut : negated conditional → KILLED
                if (chFound && CharSequenceUtils.indexOf(searchChars, ch2, 0) < 0) {
2315 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                    return i;
2316
                }
2317
            } else {
2318 1 1. indexOfAnyBut : negated conditional → KILLED
                if (!chFound) {
2319 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                    return i;
2320
                }
2321
            }
2322
        }
2323 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return INDEX_NOT_FOUND;
2324
    }
2325
2326
    // ContainsOnly
2327
    //-----------------------------------------------------------------------
2328
    /**
2329
     * <p>Checks if the CharSequence contains only certain characters.</p>
2330
     *
2331
     * <p>A {@code null} CharSequence will return {@code false}.
2332
     * A {@code null} valid character array will return {@code false}.
2333
     * An empty CharSequence (length()=0) always returns {@code true}.</p>
2334
     *
2335
     * <pre>
2336
     * StringUtils.containsOnly(null, *)       = false
2337
     * StringUtils.containsOnly(*, null)       = false
2338
     * StringUtils.containsOnly("", *)         = true
2339
     * StringUtils.containsOnly("ab", '')      = false
2340
     * StringUtils.containsOnly("abab", 'abc') = true
2341
     * StringUtils.containsOnly("ab1", 'abc')  = false
2342
     * StringUtils.containsOnly("abz", 'abc')  = false
2343
     * </pre>
2344
     *
2345
     * @param cs  the String to check, may be null
2346
     * @param valid  an array of valid chars, may be null
2347
     * @return true if it only contains valid chars and is non-null
2348
     * @since 3.0 Changed signature from containsOnly(String, char[]) to containsOnly(CharSequence, char...)
2349
     */
2350
    public static boolean containsOnly(final CharSequence cs, final char... valid) {
2351
        // All these pre-checks are to maintain API with an older version
2352 2 1. containsOnly : negated conditional → KILLED
2. containsOnly : negated conditional → KILLED
        if (valid == null || cs == null) {
2353 1 1. containsOnly : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2354
        }
2355 1 1. containsOnly : negated conditional → KILLED
        if (cs.length() == 0) {
2356 1 1. containsOnly : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
2357
        }
2358 1 1. containsOnly : negated conditional → KILLED
        if (valid.length == 0) {
2359 1 1. containsOnly : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2360
        }
2361 2 1. containsOnly : negated conditional → KILLED
2. containsOnly : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return indexOfAnyBut(cs, valid) == INDEX_NOT_FOUND;
2362
    }
2363
2364
    /**
2365
     * <p>Checks if the CharSequence contains only certain characters.</p>
2366
     *
2367
     * <p>A {@code null} CharSequence will return {@code false}.
2368
     * A {@code null} valid character String will return {@code false}.
2369
     * An empty String (length()=0) always returns {@code true}.</p>
2370
     *
2371
     * <pre>
2372
     * StringUtils.containsOnly(null, *)       = false
2373
     * StringUtils.containsOnly(*, null)       = false
2374
     * StringUtils.containsOnly("", *)         = true
2375
     * StringUtils.containsOnly("ab", "")      = false
2376
     * StringUtils.containsOnly("abab", "abc") = true
2377
     * StringUtils.containsOnly("ab1", "abc")  = false
2378
     * StringUtils.containsOnly("abz", "abc")  = false
2379
     * </pre>
2380
     *
2381
     * @param cs  the CharSequence to check, may be null
2382
     * @param validChars  a String of valid chars, may be null
2383
     * @return true if it only contains valid chars and is non-null
2384
     * @since 2.0
2385
     * @since 3.0 Changed signature from containsOnly(String, String) to containsOnly(CharSequence, String)
2386
     */
2387
    public static boolean containsOnly(final CharSequence cs, final String validChars) {
2388 2 1. containsOnly : negated conditional → KILLED
2. containsOnly : negated conditional → KILLED
        if (cs == null || validChars == null) {
2389 1 1. containsOnly : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2390
        }
2391 1 1. containsOnly : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return containsOnly(cs, validChars.toCharArray());
2392
    }
2393
2394
    // ContainsNone
2395
    //-----------------------------------------------------------------------
2396
    /**
2397
     * <p>Checks that the CharSequence does not contain certain characters.</p>
2398
     *
2399
     * <p>A {@code null} CharSequence will return {@code true}.
2400
     * A {@code null} invalid character array will return {@code true}.
2401
     * An empty CharSequence (length()=0) always returns true.</p>
2402
     *
2403
     * <pre>
2404
     * StringUtils.containsNone(null, *)       = true
2405
     * StringUtils.containsNone(*, null)       = true
2406
     * StringUtils.containsNone("", *)         = true
2407
     * StringUtils.containsNone("ab", '')      = true
2408
     * StringUtils.containsNone("abab", 'xyz') = true
2409
     * StringUtils.containsNone("ab1", 'xyz')  = true
2410
     * StringUtils.containsNone("abz", 'xyz')  = false
2411
     * </pre>
2412
     *
2413
     * @param cs  the CharSequence to check, may be null
2414
     * @param searchChars  an array of invalid chars, may be null
2415
     * @return true if it contains none of the invalid chars, or is null
2416
     * @since 2.0
2417
     * @since 3.0 Changed signature from containsNone(String, char[]) to containsNone(CharSequence, char...)
2418
     */
2419
    public static boolean containsNone(final CharSequence cs, final char... searchChars) {
2420 2 1. containsNone : negated conditional → KILLED
2. containsNone : negated conditional → KILLED
        if (cs == null || searchChars == null) {
2421 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
2422
        }
2423
        final int csLen = cs.length();
2424 1 1. containsNone : Replaced integer subtraction with addition → KILLED
        final int csLast = csLen - 1;
2425
        final int searchLen = searchChars.length;
2426 1 1. containsNone : Replaced integer subtraction with addition → KILLED
        final int searchLast = searchLen - 1;
2427 3 1. containsNone : changed conditional boundary → KILLED
2. containsNone : Changed increment from 1 to -1 → KILLED
3. containsNone : negated conditional → KILLED
        for (int i = 0; i < csLen; i++) {
2428
            final char ch = cs.charAt(i);
2429 3 1. containsNone : changed conditional boundary → KILLED
2. containsNone : Changed increment from 1 to -1 → KILLED
3. containsNone : negated conditional → KILLED
            for (int j = 0; j < searchLen; j++) {
2430 1 1. containsNone : negated conditional → KILLED
                if (searchChars[j] == ch) {
2431 1 1. containsNone : negated conditional → KILLED
                    if (Character.isHighSurrogate(ch)) {
2432 1 1. containsNone : negated conditional → KILLED
                        if (j == searchLast) {
2433
                            // missing low surrogate, fine, like String.indexOf(String)
2434 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                            return false;
2435
                        }
2436 5 1. containsNone : changed conditional boundary → KILLED
2. containsNone : Replaced integer addition with subtraction → KILLED
3. containsNone : Replaced integer addition with subtraction → KILLED
4. containsNone : negated conditional → KILLED
5. containsNone : negated conditional → KILLED
                        if (i < csLast && searchChars[j + 1] == cs.charAt(i + 1)) {
2437 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                            return false;
2438
                        }
2439
                    } else {
2440
                        // ch is in the Basic Multilingual Plane
2441 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                        return false;
2442
                    }
2443
                }
2444
            }
2445
        }
2446 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
2447
    }
2448
2449
    /**
2450
     * <p>Checks that the CharSequence does not contain certain characters.</p>
2451
     *
2452
     * <p>A {@code null} CharSequence will return {@code true}.
2453
     * A {@code null} invalid character array will return {@code true}.
2454
     * An empty String ("") always returns true.</p>
2455
     *
2456
     * <pre>
2457
     * StringUtils.containsNone(null, *)       = true
2458
     * StringUtils.containsNone(*, null)       = true
2459
     * StringUtils.containsNone("", *)         = true
2460
     * StringUtils.containsNone("ab", "")      = true
2461
     * StringUtils.containsNone("abab", "xyz") = true
2462
     * StringUtils.containsNone("ab1", "xyz")  = true
2463
     * StringUtils.containsNone("abz", "xyz")  = false
2464
     * </pre>
2465
     *
2466
     * @param cs  the CharSequence to check, may be null
2467
     * @param invalidChars  a String of invalid chars, may be null
2468
     * @return true if it contains none of the invalid chars, or is null
2469
     * @since 2.0
2470
     * @since 3.0 Changed signature from containsNone(String, String) to containsNone(CharSequence, String)
2471
     */
2472
    public static boolean containsNone(final CharSequence cs, final String invalidChars) {
2473 2 1. containsNone : negated conditional → KILLED
2. containsNone : negated conditional → KILLED
        if (cs == null || invalidChars == null) {
2474 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
2475
        }
2476 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return containsNone(cs, invalidChars.toCharArray());
2477
    }
2478
2479
    // IndexOfAny strings
2480
    //-----------------------------------------------------------------------
2481
    /**
2482
     * <p>Find the first index of any of a set of potential substrings.</p>
2483
     *
2484
     * <p>A {@code null} CharSequence will return {@code -1}.
2485
     * A {@code null} or zero length search array will return {@code -1}.
2486
     * A {@code null} search array entry will be ignored, but a search
2487
     * array containing "" will return {@code 0} if {@code str} is not
2488
     * null. This method uses {@link String#indexOf(String)} if possible.</p>
2489
     *
2490
     * <pre>
2491
     * StringUtils.indexOfAny(null, *)                     = -1
2492
     * StringUtils.indexOfAny(*, null)                     = -1
2493
     * StringUtils.indexOfAny(*, [])                       = -1
2494
     * StringUtils.indexOfAny("zzabyycdxx", ["ab","cd"])   = 2
2495
     * StringUtils.indexOfAny("zzabyycdxx", ["cd","ab"])   = 2
2496
     * StringUtils.indexOfAny("zzabyycdxx", ["mn","op"])   = -1
2497
     * StringUtils.indexOfAny("zzabyycdxx", ["zab","aby"]) = 1
2498
     * StringUtils.indexOfAny("zzabyycdxx", [""])          = 0
2499
     * StringUtils.indexOfAny("", [""])                    = 0
2500
     * StringUtils.indexOfAny("", ["a"])                   = -1
2501
     * </pre>
2502
     *
2503
     * @param str  the CharSequence to check, may be null
2504
     * @param searchStrs  the CharSequences to search for, may be null
2505
     * @return the first index of any of the searchStrs in str, -1 if no match
2506
     * @since 3.0 Changed signature from indexOfAny(String, String[]) to indexOfAny(CharSequence, CharSequence...)
2507
     */
2508
    public static int indexOfAny(final CharSequence str, final CharSequence... searchStrs) {
2509 2 1. indexOfAny : negated conditional → KILLED
2. indexOfAny : negated conditional → KILLED
        if (str == null || searchStrs == null) {
2510 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
2511
        }
2512
2513
        // String's can't have a MAX_VALUEth index.
2514
        int ret = Integer.MAX_VALUE;
2515
2516
        int tmp = 0;
2517 3 1. indexOfAny : changed conditional boundary → KILLED
2. indexOfAny : Changed increment from 1 to -1 → KILLED
3. indexOfAny : negated conditional → KILLED
        for (final CharSequence search : searchStrs) {
2518 1 1. indexOfAny : negated conditional → KILLED
            if (search == null) {
2519
                continue;
2520
            }
2521
            tmp = CharSequenceUtils.indexOf(str, search, 0);
2522 1 1. indexOfAny : negated conditional → KILLED
            if (tmp == INDEX_NOT_FOUND) {
2523
                continue;
2524
            }
2525
2526 2 1. indexOfAny : changed conditional boundary → SURVIVED
2. indexOfAny : negated conditional → KILLED
            if (tmp < ret) {
2527
                ret = tmp;
2528
            }
2529
        }
2530
2531 2 1. indexOfAny : negated conditional → KILLED
2. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return ret == Integer.MAX_VALUE ? INDEX_NOT_FOUND : ret;
2532
    }
2533
2534
    /**
2535
     * <p>Find the latest index of any of a set of potential substrings.</p>
2536
     *
2537
     * <p>A {@code null} CharSequence will return {@code -1}.
2538
     * A {@code null} search array will return {@code -1}.
2539
     * A {@code null} or zero length search array entry will be ignored,
2540
     * but a search array containing "" will return the length of {@code str}
2541
     * if {@code str} is not null. This method uses {@link String#indexOf(String)} if possible</p>
2542
     *
2543
     * <pre>
2544
     * StringUtils.lastIndexOfAny(null, *)                   = -1
2545
     * StringUtils.lastIndexOfAny(*, null)                   = -1
2546
     * StringUtils.lastIndexOfAny(*, [])                     = -1
2547
     * StringUtils.lastIndexOfAny(*, [null])                 = -1
2548
     * StringUtils.lastIndexOfAny("zzabyycdxx", ["ab","cd"]) = 6
2549
     * StringUtils.lastIndexOfAny("zzabyycdxx", ["cd","ab"]) = 6
2550
     * StringUtils.lastIndexOfAny("zzabyycdxx", ["mn","op"]) = -1
2551
     * StringUtils.lastIndexOfAny("zzabyycdxx", ["mn","op"]) = -1
2552
     * StringUtils.lastIndexOfAny("zzabyycdxx", ["mn",""])   = 10
2553
     * </pre>
2554
     *
2555
     * @param str  the CharSequence to check, may be null
2556
     * @param searchStrs  the CharSequences to search for, may be null
2557
     * @return the last index of any of the CharSequences, -1 if no match
2558
     * @since 3.0 Changed signature from lastIndexOfAny(String, String[]) to lastIndexOfAny(CharSequence, CharSequence)
2559
     */
2560
    public static int lastIndexOfAny(final CharSequence str, final CharSequence... searchStrs) {
2561 2 1. lastIndexOfAny : negated conditional → KILLED
2. lastIndexOfAny : negated conditional → KILLED
        if (str == null || searchStrs == null) {
2562 1 1. lastIndexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
2563
        }
2564
        int ret = INDEX_NOT_FOUND;
2565
        int tmp = 0;
2566 3 1. lastIndexOfAny : changed conditional boundary → KILLED
2. lastIndexOfAny : Changed increment from 1 to -1 → KILLED
3. lastIndexOfAny : negated conditional → KILLED
        for (final CharSequence search : searchStrs) {
2567 1 1. lastIndexOfAny : negated conditional → KILLED
            if (search == null) {
2568
                continue;
2569
            }
2570
            tmp = CharSequenceUtils.lastIndexOf(str, search, str.length());
2571 2 1. lastIndexOfAny : changed conditional boundary → SURVIVED
2. lastIndexOfAny : negated conditional → KILLED
            if (tmp > ret) {
2572
                ret = tmp;
2573
            }
2574
        }
2575 1 1. lastIndexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return ret;
2576
    }
2577
2578
    // Substring
2579
    //-----------------------------------------------------------------------
2580
    /**
2581
     * <p>Gets a substring from the specified String avoiding exceptions.</p>
2582
     *
2583
     * <p>A negative start position can be used to start {@code n}
2584
     * characters from the end of the String.</p>
2585
     *
2586
     * <p>A {@code null} String will return {@code null}.
2587
     * An empty ("") String will return "".</p>
2588
     *
2589
     * <pre>
2590
     * StringUtils.substring(null, *)   = null
2591
     * StringUtils.substring("", *)     = ""
2592
     * StringUtils.substring("abc", 0)  = "abc"
2593
     * StringUtils.substring("abc", 2)  = "c"
2594
     * StringUtils.substring("abc", 4)  = ""
2595
     * StringUtils.substring("abc", -2) = "bc"
2596
     * StringUtils.substring("abc", -4) = "abc"
2597
     * </pre>
2598
     *
2599
     * @param str  the String to get the substring from, may be null
2600
     * @param start  the position to start from, negative means
2601
     *  count back from the end of the String by this many characters
2602
     * @return substring from start position, {@code null} if null String input
2603
     */
2604
    public static String substring(final String str, int start) {
2605 1 1. substring : negated conditional → KILLED
        if (str == null) {
2606 1 1. substring : mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
2607
        }
2608
2609
        // handle negatives, which means last n characters
2610 2 1. substring : changed conditional boundary → KILLED
2. substring : negated conditional → KILLED
        if (start < 0) {
2611 1 1. substring : Replaced integer addition with subtraction → KILLED
            start = str.length() + start; // remember start is negative
2612
        }
2613
2614 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (start < 0) {
2615
            start = 0;
2616
        }
2617 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (start > str.length()) {
2618 1 1. substring : mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2619
        }
2620
2621 1 1. substring : mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(start);
2622
    }
2623
2624
    /**
2625
     * <p>Gets a substring from the specified String avoiding exceptions.</p>
2626
     *
2627
     * <p>A negative start position can be used to start/end {@code n}
2628
     * characters from the end of the String.</p>
2629
     *
2630
     * <p>The returned substring starts with the character in the {@code start}
2631
     * position and ends before the {@code end} position. All position counting is
2632
     * zero-based -- i.e., to start at the beginning of the string use
2633
     * {@code start = 0}. Negative start and end positions can be used to
2634
     * specify offsets relative to the end of the String.</p>
2635
     *
2636
     * <p>If {@code start} is not strictly to the left of {@code end}, ""
2637
     * is returned.</p>
2638
     *
2639
     * <pre>
2640
     * StringUtils.substring(null, *, *)    = null
2641
     * StringUtils.substring("", * ,  *)    = "";
2642
     * StringUtils.substring("abc", 0, 2)   = "ab"
2643
     * StringUtils.substring("abc", 2, 0)   = ""
2644
     * StringUtils.substring("abc", 2, 4)   = "c"
2645
     * StringUtils.substring("abc", 4, 6)   = ""
2646
     * StringUtils.substring("abc", 2, 2)   = ""
2647
     * StringUtils.substring("abc", -2, -1) = "b"
2648
     * StringUtils.substring("abc", -4, 2)  = "ab"
2649
     * </pre>
2650
     *
2651
     * @param str  the String to get the substring from, may be null
2652
     * @param start  the position to start from, negative means
2653
     *  count back from the end of the String by this many characters
2654
     * @param end  the position to end at (exclusive), negative means
2655
     *  count back from the end of the String by this many characters
2656
     * @return substring from start position to end position,
2657
     *  {@code null} if null String input
2658
     */
2659
    public static String substring(final String str, int start, int end) {
2660 1 1. substring : negated conditional → KILLED
        if (str == null) {
2661 1 1. substring : mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
2662
        }
2663
2664
        // handle negatives
2665 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (end < 0) {
2666 1 1. substring : Replaced integer addition with subtraction → KILLED
            end = str.length() + end; // remember end is negative
2667
        }
2668 2 1. substring : changed conditional boundary → KILLED
2. substring : negated conditional → KILLED
        if (start < 0) {
2669 1 1. substring : Replaced integer addition with subtraction → KILLED
            start = str.length() + start; // remember start is negative
2670
        }
2671
2672
        // check length next
2673 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (end > str.length()) {
2674
            end = str.length();
2675
        }
2676
2677
        // if start is greater than end, return ""
2678 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (start > end) {
2679 1 1. substring : mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2680
        }
2681
2682 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (start < 0) {
2683
            start = 0;
2684
        }
2685 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (end < 0) {
2686
            end = 0;
2687
        }
2688
2689 1 1. substring : mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(start, end);
2690
    }
2691
2692
    // Left/Right/Mid
2693
    //-----------------------------------------------------------------------
2694
    /**
2695
     * <p>Gets the leftmost {@code len} characters of a String.</p>
2696
     *
2697
     * <p>If {@code len} characters are not available, or the
2698
     * String is {@code null}, the String will be returned without
2699
     * an exception. An empty String is returned if len is negative.</p>
2700
     *
2701
     * <pre>
2702
     * StringUtils.left(null, *)    = null
2703
     * StringUtils.left(*, -ve)     = ""
2704
     * StringUtils.left("", *)      = ""
2705
     * StringUtils.left("abc", 0)   = ""
2706
     * StringUtils.left("abc", 2)   = "ab"
2707
     * StringUtils.left("abc", 4)   = "abc"
2708
     * </pre>
2709
     *
2710
     * @param str  the String to get the leftmost characters from, may be null
2711
     * @param len  the length of the required String
2712
     * @return the leftmost characters, {@code null} if null String input
2713
     */
2714
    public static String left(final String str, final int len) {
2715 1 1. left : negated conditional → KILLED
        if (str == null) {
2716 1 1. left : mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
2717
        }
2718 2 1. left : changed conditional boundary → SURVIVED
2. left : negated conditional → KILLED
        if (len < 0) {
2719 1 1. left : mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2720
        }
2721 2 1. left : changed conditional boundary → SURVIVED
2. left : negated conditional → KILLED
        if (str.length() <= len) {
2722 1 1. left : mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2723
        }
2724 1 1. left : mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(0, len);
2725
    }
2726
2727
    /**
2728
     * <p>Gets the rightmost {@code len} characters of a String.</p>
2729
     *
2730
     * <p>If {@code len} characters are not available, or the String
2731
     * is {@code null}, the String will be returned without an
2732
     * an exception. An empty String is returned if len is negative.</p>
2733
     *
2734
     * <pre>
2735
     * StringUtils.right(null, *)    = null
2736
     * StringUtils.right(*, -ve)     = ""
2737
     * StringUtils.right("", *)      = ""
2738
     * StringUtils.right("abc", 0)   = ""
2739
     * StringUtils.right("abc", 2)   = "bc"
2740
     * StringUtils.right("abc", 4)   = "abc"
2741
     * </pre>
2742
     *
2743
     * @param str  the String to get the rightmost characters from, may be null
2744
     * @param len  the length of the required String
2745
     * @return the rightmost characters, {@code null} if null String input
2746
     */
2747
    public static String right(final String str, final int len) {
2748 1 1. right : negated conditional → KILLED
        if (str == null) {
2749 1 1. right : mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
2750
        }
2751 2 1. right : changed conditional boundary → SURVIVED
2. right : negated conditional → KILLED
        if (len < 0) {
2752 1 1. right : mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2753
        }
2754 2 1. right : changed conditional boundary → SURVIVED
2. right : negated conditional → KILLED
        if (str.length() <= len) {
2755 1 1. right : mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2756
        }
2757 2 1. right : Replaced integer subtraction with addition → KILLED
2. right : mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(str.length() - len);
2758
    }
2759
2760
    /**
2761
     * <p>Gets {@code len} characters from the middle of a String.</p>
2762
     *
2763
     * <p>If {@code len} characters are not available, the remainder
2764
     * of the String will be returned without an exception. If the
2765
     * String is {@code null}, {@code null} will be returned.
2766
     * An empty String is returned if len is negative or exceeds the
2767
     * length of {@code str}.</p>
2768
     *
2769
     * <pre>
2770
     * StringUtils.mid(null, *, *)    = null
2771
     * StringUtils.mid(*, *, -ve)     = ""
2772
     * StringUtils.mid("", 0, *)      = ""
2773
     * StringUtils.mid("abc", 0, 2)   = "ab"
2774
     * StringUtils.mid("abc", 0, 4)   = "abc"
2775
     * StringUtils.mid("abc", 2, 4)   = "c"
2776
     * StringUtils.mid("abc", 4, 2)   = ""
2777
     * StringUtils.mid("abc", -2, 2)  = "ab"
2778
     * </pre>
2779
     *
2780
     * @param str  the String to get the characters from, may be null
2781
     * @param pos  the position to start from, negative treated as zero
2782
     * @param len  the length of the required String
2783
     * @return the middle characters, {@code null} if null String input
2784
     */
2785
    public static String mid(final String str, int pos, final int len) {
2786 1 1. mid : negated conditional → KILLED
        if (str == null) {
2787 1 1. mid : mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
2788
        }
2789 4 1. mid : changed conditional boundary → SURVIVED
2. mid : changed conditional boundary → SURVIVED
3. mid : negated conditional → KILLED
4. mid : negated conditional → KILLED
        if (len < 0 || pos > str.length()) {
2790 1 1. mid : mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2791
        }
2792 2 1. mid : changed conditional boundary → SURVIVED
2. mid : negated conditional → KILLED
        if (pos < 0) {
2793
            pos = 0;
2794
        }
2795 3 1. mid : changed conditional boundary → SURVIVED
2. mid : Replaced integer addition with subtraction → KILLED
3. mid : negated conditional → KILLED
        if (str.length() <= pos + len) {
2796 1 1. mid : mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(pos);
2797
        }
2798 2 1. mid : Replaced integer addition with subtraction → KILLED
2. mid : mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(pos, pos + len);
2799
    }
2800
2801
    // SubStringAfter/SubStringBefore
2802
    //-----------------------------------------------------------------------
2803
    /**
2804
     * <p>Gets the substring before the first occurrence of a separator.
2805
     * The separator is not returned.</p>
2806
     *
2807
     * <p>A {@code null} string input will return {@code null}.
2808
     * An empty ("") string input will return the empty string.
2809
     * A {@code null} separator will return the input string.</p>
2810
     *
2811
     * <p>If nothing is found, the string input is returned.</p>
2812
     *
2813
     * <pre>
2814
     * StringUtils.substringBefore(null, *)      = null
2815
     * StringUtils.substringBefore("", *)        = ""
2816
     * StringUtils.substringBefore("abc", "a")   = ""
2817
     * StringUtils.substringBefore("abcba", "b") = "a"
2818
     * StringUtils.substringBefore("abc", "c")   = "ab"
2819
     * StringUtils.substringBefore("abc", "d")   = "abc"
2820
     * StringUtils.substringBefore("abc", "")    = ""
2821
     * StringUtils.substringBefore("abc", null)  = "abc"
2822
     * </pre>
2823
     *
2824
     * @param str  the String to get a substring from, may be null
2825
     * @param separator  the String to search for, may be null
2826
     * @return the substring before the first occurrence of the separator,
2827
     *  {@code null} if null String input
2828
     * @since 2.0
2829
     */
2830
    public static String substringBefore(final String str, final String separator) {
2831 2 1. substringBefore : negated conditional → KILLED
2. substringBefore : negated conditional → KILLED
        if (isEmpty(str) || separator == null) {
2832 1 1. substringBefore : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2833
        }
2834 1 1. substringBefore : negated conditional → KILLED
        if (separator.isEmpty()) {
2835 1 1. substringBefore : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2836
        }
2837
        final int pos = str.indexOf(separator);
2838 1 1. substringBefore : negated conditional → KILLED
        if (pos == INDEX_NOT_FOUND) {
2839 1 1. substringBefore : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2840
        }
2841 1 1. substringBefore : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(0, pos);
2842
    }
2843
2844
    /**
2845
     * <p>Gets the substring after the first occurrence of a separator.
2846
     * The separator is not returned.</p>
2847
     *
2848
     * <p>A {@code null} string input will return {@code null}.
2849
     * An empty ("") string input will return the empty string.
2850
     * A {@code null} separator will return the empty string if the
2851
     * input string is not {@code null}.</p>
2852
     *
2853
     * <p>If nothing is found, the empty string is returned.</p>
2854
     *
2855
     * <pre>
2856
     * StringUtils.substringAfter(null, *)      = null
2857
     * StringUtils.substringAfter("", *)        = ""
2858
     * StringUtils.substringAfter(*, null)      = ""
2859
     * StringUtils.substringAfter("abc", "a")   = "bc"
2860
     * StringUtils.substringAfter("abcba", "b") = "cba"
2861
     * StringUtils.substringAfter("abc", "c")   = ""
2862
     * StringUtils.substringAfter("abc", "d")   = ""
2863
     * StringUtils.substringAfter("abc", "")    = "abc"
2864
     * </pre>
2865
     *
2866
     * @param str  the String to get a substring from, may be null
2867
     * @param separator  the String to search for, may be null
2868
     * @return the substring after the first occurrence of the separator,
2869
     *  {@code null} if null String input
2870
     * @since 2.0
2871
     */
2872
    public static String substringAfter(final String str, final String separator) {
2873 1 1. substringAfter : negated conditional → KILLED
        if (isEmpty(str)) {
2874 1 1. substringAfter : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2875
        }
2876 1 1. substringAfter : negated conditional → KILLED
        if (separator == null) {
2877 1 1. substringAfter : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2878
        }
2879
        final int pos = str.indexOf(separator);
2880 1 1. substringAfter : negated conditional → KILLED
        if (pos == INDEX_NOT_FOUND) {
2881 1 1. substringAfter : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2882
        }
2883 2 1. substringAfter : Replaced integer addition with subtraction → KILLED
2. substringAfter : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(pos + separator.length());
2884
    }
2885
2886
    /**
2887
     * <p>Gets the substring before the last occurrence of a separator.
2888
     * The separator is not returned.</p>
2889
     *
2890
     * <p>A {@code null} string input will return {@code null}.
2891
     * An empty ("") string input will return the empty string.
2892
     * An empty or {@code null} separator will return the input string.</p>
2893
     *
2894
     * <p>If nothing is found, the string input is returned.</p>
2895
     *
2896
     * <pre>
2897
     * StringUtils.substringBeforeLast(null, *)      = null
2898
     * StringUtils.substringBeforeLast("", *)        = ""
2899
     * StringUtils.substringBeforeLast("abcba", "b") = "abc"
2900
     * StringUtils.substringBeforeLast("abc", "c")   = "ab"
2901
     * StringUtils.substringBeforeLast("a", "a")     = ""
2902
     * StringUtils.substringBeforeLast("a", "z")     = "a"
2903
     * StringUtils.substringBeforeLast("a", null)    = "a"
2904
     * StringUtils.substringBeforeLast("a", "")      = "a"
2905
     * </pre>
2906
     *
2907
     * @param str  the String to get a substring from, may be null
2908
     * @param separator  the String to search for, may be null
2909
     * @return the substring before the last occurrence of the separator,
2910
     *  {@code null} if null String input
2911
     * @since 2.0
2912
     */
2913
    public static String substringBeforeLast(final String str, final String separator) {
2914 2 1. substringBeforeLast : negated conditional → KILLED
2. substringBeforeLast : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(separator)) {
2915 1 1. substringBeforeLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBeforeLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2916
        }
2917
        final int pos = str.lastIndexOf(separator);
2918 1 1. substringBeforeLast : negated conditional → KILLED
        if (pos == INDEX_NOT_FOUND) {
2919 1 1. substringBeforeLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBeforeLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2920
        }
2921 1 1. substringBeforeLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBeforeLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(0, pos);
2922
    }
2923
2924
    /**
2925
     * <p>Gets the substring after the last occurrence of a separator.
2926
     * The separator is not returned.</p>
2927
     *
2928
     * <p>A {@code null} string input will return {@code null}.
2929
     * An empty ("") string input will return the empty string.
2930
     * An empty or {@code null} separator will return the empty string if
2931
     * the input string is not {@code null}.</p>
2932
     *
2933
     * <p>If nothing is found, the empty string is returned.</p>
2934
     *
2935
     * <pre>
2936
     * StringUtils.substringAfterLast(null, *)      = null
2937
     * StringUtils.substringAfterLast("", *)        = ""
2938
     * StringUtils.substringAfterLast(*, "")        = ""
2939
     * StringUtils.substringAfterLast(*, null)      = ""
2940
     * StringUtils.substringAfterLast("abc", "a")   = "bc"
2941
     * StringUtils.substringAfterLast("abcba", "b") = "a"
2942
     * StringUtils.substringAfterLast("abc", "c")   = ""
2943
     * StringUtils.substringAfterLast("a", "a")     = ""
2944
     * StringUtils.substringAfterLast("a", "z")     = ""
2945
     * </pre>
2946
     *
2947
     * @param str  the String to get a substring from, may be null
2948
     * @param separator  the String to search for, may be null
2949
     * @return the substring after the last occurrence of the separator,
2950
     *  {@code null} if null String input
2951
     * @since 2.0
2952
     */
2953
    public static String substringAfterLast(final String str, final String separator) {
2954 1 1. substringAfterLast : negated conditional → KILLED
        if (isEmpty(str)) {
2955 1 1. substringAfterLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2956
        }
2957 1 1. substringAfterLast : negated conditional → KILLED
        if (isEmpty(separator)) {
2958 1 1. substringAfterLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2959
        }
2960
        final int pos = str.lastIndexOf(separator);
2961 3 1. substringAfterLast : Replaced integer subtraction with addition → SURVIVED
2. substringAfterLast : negated conditional → KILLED
3. substringAfterLast : negated conditional → KILLED
        if (pos == INDEX_NOT_FOUND || pos == str.length() - separator.length()) {
2962 1 1. substringAfterLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2963
        }
2964 2 1. substringAfterLast : Replaced integer addition with subtraction → KILLED
2. substringAfterLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(pos + separator.length());
2965
    }
2966
2967
    // Substring between
2968
    //-----------------------------------------------------------------------
2969
    /**
2970
     * <p>Gets the String that is nested in between two instances of the
2971
     * same String.</p>
2972
     *
2973
     * <p>A {@code null} input String returns {@code null}.
2974
     * A {@code null} tag returns {@code null}.</p>
2975
     *
2976
     * <pre>
2977
     * StringUtils.substringBetween(null, *)            = null
2978
     * StringUtils.substringBetween("", "")             = ""
2979
     * StringUtils.substringBetween("", "tag")          = null
2980
     * StringUtils.substringBetween("tagabctag", null)  = null
2981
     * StringUtils.substringBetween("tagabctag", "")    = ""
2982
     * StringUtils.substringBetween("tagabctag", "tag") = "abc"
2983
     * </pre>
2984
     *
2985
     * @param str  the String containing the substring, may be null
2986
     * @param tag  the String before and after the substring, may be null
2987
     * @return the substring, {@code null} if no match
2988
     * @since 2.0
2989
     */
2990
    public static String substringBetween(final String str, final String tag) {
2991 1 1. substringBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return substringBetween(str, tag, tag);
2992
    }
2993
2994
    /**
2995
     * <p>Gets the String that is nested in between two Strings.
2996
     * Only the first match is returned.</p>
2997
     *
2998
     * <p>A {@code null} input String returns {@code null}.
2999
     * A {@code null} open/close returns {@code null} (no match).
3000
     * An empty ("") open and close returns an empty string.</p>
3001
     *
3002
     * <pre>
3003
     * StringUtils.substringBetween("wx[b]yz", "[", "]") = "b"
3004
     * StringUtils.substringBetween(null, *, *)          = null
3005
     * StringUtils.substringBetween(*, null, *)          = null
3006
     * StringUtils.substringBetween(*, *, null)          = null
3007
     * StringUtils.substringBetween("", "", "")          = ""
3008
     * StringUtils.substringBetween("", "", "]")         = null
3009
     * StringUtils.substringBetween("", "[", "]")        = null
3010
     * StringUtils.substringBetween("yabcz", "", "")     = ""
3011
     * StringUtils.substringBetween("yabcz", "y", "z")   = "abc"
3012
     * StringUtils.substringBetween("yabczyabcz", "y", "z")   = "abc"
3013
     * </pre>
3014
     *
3015
     * @param str  the String containing the substring, may be null
3016
     * @param open  the String before the substring, may be null
3017
     * @param close  the String after the substring, may be null
3018
     * @return the substring, {@code null} if no match
3019
     * @since 2.0
3020
     */
3021
    public static String substringBetween(final String str, final String open, final String close) {
3022 3 1. substringBetween : negated conditional → KILLED
2. substringBetween : negated conditional → KILLED
3. substringBetween : negated conditional → KILLED
        if (str == null || open == null || close == null) {
3023 1 1. substringBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3024
        }
3025
        final int start = str.indexOf(open);
3026 1 1. substringBetween : negated conditional → KILLED
        if (start != INDEX_NOT_FOUND) {
3027 1 1. substringBetween : Replaced integer addition with subtraction → KILLED
            final int end = str.indexOf(close, start + open.length());
3028 1 1. substringBetween : negated conditional → KILLED
            if (end != INDEX_NOT_FOUND) {
3029 2 1. substringBetween : Replaced integer addition with subtraction → KILLED
2. substringBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return str.substring(start + open.length(), end);
3030
            }
3031
        }
3032 1 1. substringBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return null;
3033
    }
3034
3035
    /**
3036
     * <p>Searches a String for substrings delimited by a start and end tag,
3037
     * returning all matching substrings in an array.</p>
3038
     *
3039
     * <p>A {@code null} input String returns {@code null}.
3040
     * A {@code null} open/close returns {@code null} (no match).
3041
     * An empty ("") open/close returns {@code null} (no match).</p>
3042
     *
3043
     * <pre>
3044
     * StringUtils.substringsBetween("[a][b][c]", "[", "]") = ["a","b","c"]
3045
     * StringUtils.substringsBetween(null, *, *)            = null
3046
     * StringUtils.substringsBetween(*, null, *)            = null
3047
     * StringUtils.substringsBetween(*, *, null)            = null
3048
     * StringUtils.substringsBetween("", "[", "]")          = []
3049
     * </pre>
3050
     *
3051
     * @param str  the String containing the substrings, null returns null, empty returns empty
3052
     * @param open  the String identifying the start of the substring, empty returns null
3053
     * @param close  the String identifying the end of the substring, empty returns null
3054
     * @return a String Array of substrings, or {@code null} if no match
3055
     * @since 2.3
3056
     */
3057
    public static String[] substringsBetween(final String str, final String open, final String close) {
3058 3 1. substringsBetween : negated conditional → KILLED
2. substringsBetween : negated conditional → KILLED
3. substringsBetween : negated conditional → KILLED
        if (str == null || isEmpty(open) || isEmpty(close)) {
3059 1 1. substringsBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3060
        }
3061
        final int strLen = str.length();
3062 1 1. substringsBetween : negated conditional → KILLED
        if (strLen == 0) {
3063 1 1. substringsBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ArrayUtils.EMPTY_STRING_ARRAY;
3064
        }
3065
        final int closeLen = close.length();
3066
        final int openLen = open.length();
3067
        final List<String> list = new ArrayList<>();
3068
        int pos = 0;
3069 3 1. substringsBetween : changed conditional boundary → SURVIVED
2. substringsBetween : Replaced integer subtraction with addition → SURVIVED
3. substringsBetween : negated conditional → KILLED
        while (pos < strLen - closeLen) {
3070
            int start = str.indexOf(open, pos);
3071 2 1. substringsBetween : changed conditional boundary → KILLED
2. substringsBetween : negated conditional → KILLED
            if (start < 0) {
3072
                break;
3073
            }
3074 1 1. substringsBetween : Replaced integer addition with subtraction → KILLED
            start += openLen;
3075
            final int end = str.indexOf(close, start);
3076 2 1. substringsBetween : changed conditional boundary → SURVIVED
2. substringsBetween : negated conditional → KILLED
            if (end < 0) {
3077
                break;
3078
            }
3079
            list.add(str.substring(start, end));
3080 1 1. substringsBetween : Replaced integer addition with subtraction → KILLED
            pos = end + closeLen;
3081
        }
3082 1 1. substringsBetween : negated conditional → KILLED
        if (list.isEmpty()) {
3083 1 1. substringsBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3084
        }
3085 1 1. substringsBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return list.toArray(new String [list.size()]);
3086
    }
3087
3088
    // Nested extraction
3089
    //-----------------------------------------------------------------------
3090
3091
    // Splitting
3092
    //-----------------------------------------------------------------------
3093
    /**
3094
     * <p>Splits the provided text into an array, using whitespace as the
3095
     * separator.
3096
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
3097
     *
3098
     * <p>The separator is not included in the returned String array.
3099
     * Adjacent separators are treated as one separator.
3100
     * For more control over the split use the StrTokenizer class.</p>
3101
     *
3102
     * <p>A {@code null} input String returns {@code null}.</p>
3103
     *
3104
     * <pre>
3105
     * StringUtils.split(null)       = null
3106
     * StringUtils.split("")         = []
3107
     * StringUtils.split("abc def")  = ["abc", "def"]
3108
     * StringUtils.split("abc  def") = ["abc", "def"]
3109
     * StringUtils.split(" abc ")    = ["abc"]
3110
     * </pre>
3111
     *
3112
     * @param str  the String to parse, may be null
3113
     * @return an array of parsed Strings, {@code null} if null String input
3114
     */
3115
    public static String[] split(final String str) {
3116 1 1. split : mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return split(str, null, -1);
3117
    }
3118
3119
    /**
3120
     * <p>Splits the provided text into an array, separator specified.
3121
     * This is an alternative to using StringTokenizer.</p>
3122
     *
3123
     * <p>The separator is not included in the returned String array.
3124
     * Adjacent separators are treated as one separator.
3125
     * For more control over the split use the StrTokenizer class.</p>
3126
     *
3127
     * <p>A {@code null} input String returns {@code null}.</p>
3128
     *
3129
     * <pre>
3130
     * StringUtils.split(null, *)         = null
3131
     * StringUtils.split("", *)           = []
3132
     * StringUtils.split("a.b.c", '.')    = ["a", "b", "c"]
3133
     * StringUtils.split("a..b.c", '.')   = ["a", "b", "c"]
3134
     * StringUtils.split("a:b:c", '.')    = ["a:b:c"]
3135
     * StringUtils.split("a b c", ' ')    = ["a", "b", "c"]
3136
     * </pre>
3137
     *
3138
     * @param str  the String to parse, may be null
3139
     * @param separatorChar  the character used as the delimiter
3140
     * @return an array of parsed Strings, {@code null} if null String input
3141
     * @since 2.0
3142
     */
3143
    public static String[] split(final String str, final char separatorChar) {
3144 1 1. split : mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, separatorChar, false);
3145
    }
3146
3147
    /**
3148
     * <p>Splits the provided text into an array, separators specified.
3149
     * This is an alternative to using StringTokenizer.</p>
3150
     *
3151
     * <p>The separator is not included in the returned String array.
3152
     * Adjacent separators are treated as one separator.
3153
     * For more control over the split use the StrTokenizer class.</p>
3154
     *
3155
     * <p>A {@code null} input String returns {@code null}.
3156
     * A {@code null} separatorChars splits on whitespace.</p>
3157
     *
3158
     * <pre>
3159
     * StringUtils.split(null, *)         = null
3160
     * StringUtils.split("", *)           = []
3161
     * StringUtils.split("abc def", null) = ["abc", "def"]
3162
     * StringUtils.split("abc def", " ")  = ["abc", "def"]
3163
     * StringUtils.split("abc  def", " ") = ["abc", "def"]
3164
     * StringUtils.split("ab:cd:ef", ":") = ["ab", "cd", "ef"]
3165
     * </pre>
3166
     *
3167
     * @param str  the String to parse, may be null
3168
     * @param separatorChars  the characters used as the delimiters,
3169
     *  {@code null} splits on whitespace
3170
     * @return an array of parsed Strings, {@code null} if null String input
3171
     */
3172
    public static String[] split(final String str, final String separatorChars) {
3173 1 1. split : mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, separatorChars, -1, false);
3174
    }
3175
3176
    /**
3177
     * <p>Splits the provided text into an array with a maximum length,
3178
     * separators specified.</p>
3179
     *
3180
     * <p>The separator is not included in the returned String array.
3181
     * Adjacent separators are treated as one separator.</p>
3182
     *
3183
     * <p>A {@code null} input String returns {@code null}.
3184
     * A {@code null} separatorChars splits on whitespace.</p>
3185
     *
3186
     * <p>If more than {@code max} delimited substrings are found, the last
3187
     * returned string includes all characters after the first {@code max - 1}
3188
     * returned strings (including separator characters).</p>
3189
     *
3190
     * <pre>
3191
     * StringUtils.split(null, *, *)            = null
3192
     * StringUtils.split("", *, *)              = []
3193
     * StringUtils.split("ab cd ef", null, 0)   = ["ab", "cd", "ef"]
3194
     * StringUtils.split("ab   cd ef", null, 0) = ["ab", "cd", "ef"]
3195
     * StringUtils.split("ab:cd:ef", ":", 0)    = ["ab", "cd", "ef"]
3196
     * StringUtils.split("ab:cd:ef", ":", 2)    = ["ab", "cd:ef"]
3197
     * </pre>
3198
     *
3199
     * @param str  the String to parse, may be null
3200
     * @param separatorChars  the characters used as the delimiters,
3201
     *  {@code null} splits on whitespace
3202
     * @param max  the maximum number of elements to include in the
3203
     *  array. A zero or negative value implies no limit
3204
     * @return an array of parsed Strings, {@code null} if null String input
3205
     */
3206
    public static String[] split(final String str, final String separatorChars, final int max) {
3207 1 1. split : mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, separatorChars, max, false);
3208
    }
3209
3210
    /**
3211
     * <p>Splits the provided text into an array, separator string specified.</p>
3212
     *
3213
     * <p>The separator(s) will not be included in the returned String array.
3214
     * Adjacent separators are treated as one separator.</p>
3215
     *
3216
     * <p>A {@code null} input String returns {@code null}.
3217
     * A {@code null} separator splits on whitespace.</p>
3218
     *
3219
     * <pre>
3220
     * StringUtils.splitByWholeSeparator(null, *)               = null
3221
     * StringUtils.splitByWholeSeparator("", *)                 = []
3222
     * StringUtils.splitByWholeSeparator("ab de fg", null)      = ["ab", "de", "fg"]
3223
     * StringUtils.splitByWholeSeparator("ab   de fg", null)    = ["ab", "de", "fg"]
3224
     * StringUtils.splitByWholeSeparator("ab:cd:ef", ":")       = ["ab", "cd", "ef"]
3225
     * StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-") = ["ab", "cd", "ef"]
3226
     * </pre>
3227
     *
3228
     * @param str  the String to parse, may be null
3229
     * @param separator  String containing the String to be used as a delimiter,
3230
     *  {@code null} splits on whitespace
3231
     * @return an array of parsed Strings, {@code null} if null String was input
3232
     */
3233
    public static String[] splitByWholeSeparator(final String str, final String separator) {
3234 1 1. splitByWholeSeparator : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparator to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitByWholeSeparatorWorker( str, separator, -1, false ) ;
3235
    }
3236
3237
    /**
3238
     * <p>Splits the provided text into an array, separator string specified.
3239
     * Returns a maximum of {@code max} substrings.</p>
3240
     *
3241
     * <p>The separator(s) will not be included in the returned String array.
3242
     * Adjacent separators are treated as one separator.</p>
3243
     *
3244
     * <p>A {@code null} input String returns {@code null}.
3245
     * A {@code null} separator splits on whitespace.</p>
3246
     *
3247
     * <pre>
3248
     * StringUtils.splitByWholeSeparator(null, *, *)               = null
3249
     * StringUtils.splitByWholeSeparator("", *, *)                 = []
3250
     * StringUtils.splitByWholeSeparator("ab de fg", null, 0)      = ["ab", "de", "fg"]
3251
     * StringUtils.splitByWholeSeparator("ab   de fg", null, 0)    = ["ab", "de", "fg"]
3252
     * StringUtils.splitByWholeSeparator("ab:cd:ef", ":", 2)       = ["ab", "cd:ef"]
3253
     * StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-", 5) = ["ab", "cd", "ef"]
3254
     * StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-", 2) = ["ab", "cd-!-ef"]
3255
     * </pre>
3256
     *
3257
     * @param str  the String to parse, may be null
3258
     * @param separator  String containing the String to be used as a delimiter,
3259
     *  {@code null} splits on whitespace
3260
     * @param max  the maximum number of elements to include in the returned
3261
     *  array. A zero or negative value implies no limit.
3262
     * @return an array of parsed Strings, {@code null} if null String was input
3263
     */
3264
    public static String[] splitByWholeSeparator( final String str, final String separator, final int max) {
3265 1 1. splitByWholeSeparator : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparator to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitByWholeSeparatorWorker(str, separator, max, false);
3266
    }
3267
3268
    /**
3269
     * <p>Splits the provided text into an array, separator string specified. </p>
3270
     *
3271
     * <p>The separator is not included in the returned String array.
3272
     * Adjacent separators are treated as separators for empty tokens.
3273
     * For more control over the split use the StrTokenizer class.</p>
3274
     *
3275
     * <p>A {@code null} input String returns {@code null}.
3276
     * A {@code null} separator splits on whitespace.</p>
3277
     *
3278
     * <pre>
3279
     * StringUtils.splitByWholeSeparatorPreserveAllTokens(null, *)               = null
3280
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("", *)                 = []
3281
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab de fg", null)      = ["ab", "de", "fg"]
3282
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab   de fg", null)    = ["ab", "", "", "de", "fg"]
3283
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab:cd:ef", ":")       = ["ab", "cd", "ef"]
3284
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab-!-cd-!-ef", "-!-") = ["ab", "cd", "ef"]
3285
     * </pre>
3286
     *
3287
     * @param str  the String to parse, may be null
3288
     * @param separator  String containing the String to be used as a delimiter,
3289
     *  {@code null} splits on whitespace
3290
     * @return an array of parsed Strings, {@code null} if null String was input
3291
     * @since 2.4
3292
     */
3293
    public static String[] splitByWholeSeparatorPreserveAllTokens(final String str, final String separator) {
3294 1 1. splitByWholeSeparatorPreserveAllTokens : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitByWholeSeparatorWorker(str, separator, -1, true);
3295
    }
3296
3297
    /**
3298
     * <p>Splits the provided text into an array, separator string specified.
3299
     * Returns a maximum of {@code max} substrings.</p>
3300
     *
3301
     * <p>The separator is not included in the returned String array.
3302
     * Adjacent separators are treated as separators for empty tokens.
3303
     * For more control over the split use the StrTokenizer class.</p>
3304
     *
3305
     * <p>A {@code null} input String returns {@code null}.
3306
     * A {@code null} separator splits on whitespace.</p>
3307
     *
3308
     * <pre>
3309
     * StringUtils.splitByWholeSeparatorPreserveAllTokens(null, *, *)               = null
3310
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("", *, *)                 = []
3311
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab de fg", null, 0)      = ["ab", "de", "fg"]
3312
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab   de fg", null, 0)    = ["ab", "", "", "de", "fg"]
3313
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab:cd:ef", ":", 2)       = ["ab", "cd:ef"]
3314
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab-!-cd-!-ef", "-!-", 5) = ["ab", "cd", "ef"]
3315
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab-!-cd-!-ef", "-!-", 2) = ["ab", "cd-!-ef"]
3316
     * </pre>
3317
     *
3318
     * @param str  the String to parse, may be null
3319
     * @param separator  String containing the String to be used as a delimiter,
3320
     *  {@code null} splits on whitespace
3321
     * @param max  the maximum number of elements to include in the returned
3322
     *  array. A zero or negative value implies no limit.
3323
     * @return an array of parsed Strings, {@code null} if null String was input
3324
     * @since 2.4
3325
     */
3326
    public static String[] splitByWholeSeparatorPreserveAllTokens(final String str, final String separator, final int max) {
3327 1 1. splitByWholeSeparatorPreserveAllTokens : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitByWholeSeparatorWorker(str, separator, max, true);
3328
    }
3329
3330
    /**
3331
     * Performs the logic for the {@code splitByWholeSeparatorPreserveAllTokens} methods.
3332
     *
3333
     * @param str  the String to parse, may be {@code null}
3334
     * @param separator  String containing the String to be used as a delimiter,
3335
     *  {@code null} splits on whitespace
3336
     * @param max  the maximum number of elements to include in the returned
3337
     *  array. A zero or negative value implies no limit.
3338
     * @param preserveAllTokens if {@code true}, adjacent separators are
3339
     * treated as empty token separators; if {@code false}, adjacent
3340
     * separators are treated as one separator.
3341
     * @return an array of parsed Strings, {@code null} if null String input
3342
     * @since 2.4
3343
     */
3344
    private static String[] splitByWholeSeparatorWorker(
3345
            final String str, final String separator, final int max, final boolean preserveAllTokens) {
3346 1 1. splitByWholeSeparatorWorker : negated conditional → KILLED
        if (str == null) {
3347 1 1. splitByWholeSeparatorWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3348
        }
3349
3350
        final int len = str.length();
3351
3352 1 1. splitByWholeSeparatorWorker : negated conditional → KILLED
        if (len == 0) {
3353 1 1. splitByWholeSeparatorWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ArrayUtils.EMPTY_STRING_ARRAY;
3354
        }
3355
3356 2 1. splitByWholeSeparatorWorker : negated conditional → KILLED
2. splitByWholeSeparatorWorker : negated conditional → KILLED
        if (separator == null || EMPTY.equals(separator)) {
3357
            // Split on whitespace.
3358 1 1. splitByWholeSeparatorWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return splitWorker(str, null, max, preserveAllTokens);
3359
        }
3360
3361
        final int separatorLength = separator.length();
3362
3363
        final ArrayList<String> substrings = new ArrayList<>();
3364
        int numberOfSubstrings = 0;
3365
        int beg = 0;
3366
        int end = 0;
3367 2 1. splitByWholeSeparatorWorker : changed conditional boundary → TIMED_OUT
2. splitByWholeSeparatorWorker : negated conditional → KILLED
        while (end < len) {
3368
            end = str.indexOf(separator, beg);
3369
3370 2 1. splitByWholeSeparatorWorker : changed conditional boundary → TIMED_OUT
2. splitByWholeSeparatorWorker : negated conditional → KILLED
            if (end > -1) {
3371 2 1. splitByWholeSeparatorWorker : changed conditional boundary → KILLED
2. splitByWholeSeparatorWorker : negated conditional → KILLED
                if (end > beg) {
3372 1 1. splitByWholeSeparatorWorker : Changed increment from 1 to -1 → KILLED
                    numberOfSubstrings += 1;
3373
3374 1 1. splitByWholeSeparatorWorker : negated conditional → KILLED
                    if (numberOfSubstrings == max) {
3375
                        end = len;
3376
                        substrings.add(str.substring(beg));
3377
                    } else {
3378
                        // The following is OK, because String.substring( beg, end ) excludes
3379
                        // the character at the position 'end'.
3380
                        substrings.add(str.substring(beg, end));
3381
3382
                        // Set the starting point for the next search.
3383
                        // The following is equivalent to beg = end + (separatorLength - 1) + 1,
3384
                        // which is the right calculation:
3385 1 1. splitByWholeSeparatorWorker : Replaced integer addition with subtraction → KILLED
                        beg = end + separatorLength;
3386
                    }
3387
                } else {
3388
                    // We found a consecutive occurrence of the separator, so skip it.
3389 1 1. splitByWholeSeparatorWorker : negated conditional → KILLED
                    if (preserveAllTokens) {
3390 1 1. splitByWholeSeparatorWorker : Changed increment from 1 to -1 → KILLED
                        numberOfSubstrings += 1;
3391 1 1. splitByWholeSeparatorWorker : negated conditional → KILLED
                        if (numberOfSubstrings == max) {
3392
                            end = len;
3393
                            substrings.add(str.substring(beg));
3394
                        } else {
3395
                            substrings.add(EMPTY);
3396
                        }
3397
                    }
3398 1 1. splitByWholeSeparatorWorker : Replaced integer addition with subtraction → TIMED_OUT
                    beg = end + separatorLength;
3399
                }
3400
            } else {
3401
                // String.substring( beg ) goes from 'beg' to the end of the String.
3402
                substrings.add(str.substring(beg));
3403
                end = len;
3404
            }
3405
        }
3406
3407 1 1. splitByWholeSeparatorWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return substrings.toArray(new String[substrings.size()]);
3408
    }
3409
3410
    // -----------------------------------------------------------------------
3411
    /**
3412
     * <p>Splits the provided text into an array, using whitespace as the
3413
     * separator, preserving all tokens, including empty tokens created by
3414
     * adjacent separators. This is an alternative to using StringTokenizer.
3415
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
3416
     *
3417
     * <p>The separator is not included in the returned String array.
3418
     * Adjacent separators are treated as separators for empty tokens.
3419
     * For more control over the split use the StrTokenizer class.</p>
3420
     *
3421
     * <p>A {@code null} input String returns {@code null}.</p>
3422
     *
3423
     * <pre>
3424
     * StringUtils.splitPreserveAllTokens(null)       = null
3425
     * StringUtils.splitPreserveAllTokens("")         = []
3426
     * StringUtils.splitPreserveAllTokens("abc def")  = ["abc", "def"]
3427
     * StringUtils.splitPreserveAllTokens("abc  def") = ["abc", "", "def"]
3428
     * StringUtils.splitPreserveAllTokens(" abc ")    = ["", "abc", ""]
3429
     * </pre>
3430
     *
3431
     * @param str  the String to parse, may be {@code null}
3432
     * @return an array of parsed Strings, {@code null} if null String input
3433
     * @since 2.1
3434
     */
3435
    public static String[] splitPreserveAllTokens(final String str) {
3436 1 1. splitPreserveAllTokens : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, null, -1, true);
3437
    }
3438
3439
    /**
3440
     * <p>Splits the provided text into an array, separator specified,
3441
     * preserving all tokens, including empty tokens created by adjacent
3442
     * separators. This is an alternative to using StringTokenizer.</p>
3443
     *
3444
     * <p>The separator is not included in the returned String array.
3445
     * Adjacent separators are treated as separators for empty tokens.
3446
     * For more control over the split use the StrTokenizer class.</p>
3447
     *
3448
     * <p>A {@code null} input String returns {@code null}.</p>
3449
     *
3450
     * <pre>
3451
     * StringUtils.splitPreserveAllTokens(null, *)         = null
3452
     * StringUtils.splitPreserveAllTokens("", *)           = []
3453
     * StringUtils.splitPreserveAllTokens("a.b.c", '.')    = ["a", "b", "c"]
3454
     * StringUtils.splitPreserveAllTokens("a..b.c", '.')   = ["a", "", "b", "c"]
3455
     * StringUtils.splitPreserveAllTokens("a:b:c", '.')    = ["a:b:c"]
3456
     * StringUtils.splitPreserveAllTokens("a\tb\nc", null) = ["a", "b", "c"]
3457
     * StringUtils.splitPreserveAllTokens("a b c", ' ')    = ["a", "b", "c"]
3458
     * StringUtils.splitPreserveAllTokens("a b c ", ' ')   = ["a", "b", "c", ""]
3459
     * StringUtils.splitPreserveAllTokens("a b c  ", ' ')   = ["a", "b", "c", "", ""]
3460
     * StringUtils.splitPreserveAllTokens(" a b c", ' ')   = ["", a", "b", "c"]
3461
     * StringUtils.splitPreserveAllTokens("  a b c", ' ')  = ["", "", a", "b", "c"]
3462
     * StringUtils.splitPreserveAllTokens(" a b c ", ' ')  = ["", a", "b", "c", ""]
3463
     * </pre>
3464
     *
3465
     * @param str  the String to parse, may be {@code null}
3466
     * @param separatorChar  the character used as the delimiter,
3467
     *  {@code null} splits on whitespace
3468
     * @return an array of parsed Strings, {@code null} if null String input
3469
     * @since 2.1
3470
     */
3471
    public static String[] splitPreserveAllTokens(final String str, final char separatorChar) {
3472 1 1. splitPreserveAllTokens : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, separatorChar, true);
3473
    }
3474
3475
    /**
3476
     * Performs the logic for the {@code split} and
3477
     * {@code splitPreserveAllTokens} methods that do not return a
3478
     * maximum array length.
3479
     *
3480
     * @param str  the String to parse, may be {@code null}
3481
     * @param separatorChar the separate character
3482
     * @param preserveAllTokens if {@code true}, adjacent separators are
3483
     * treated as empty token separators; if {@code false}, adjacent
3484
     * separators are treated as one separator.
3485
     * @return an array of parsed Strings, {@code null} if null String input
3486
     */
3487
    private static String[] splitWorker(final String str, final char separatorChar, final boolean preserveAllTokens) {
3488
        // Performance tuned for 2.0 (JDK1.4)
3489
3490 1 1. splitWorker : negated conditional → KILLED
        if (str == null) {
3491 1 1. splitWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3492
        }
3493
        final int len = str.length();
3494 1 1. splitWorker : negated conditional → KILLED
        if (len == 0) {
3495 1 1. splitWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ArrayUtils.EMPTY_STRING_ARRAY;
3496
        }
3497
        final List<String> list = new ArrayList<>();
3498
        int i = 0, start = 0;
3499
        boolean match = false;
3500
        boolean lastMatch = false;
3501 2 1. splitWorker : changed conditional boundary → KILLED
2. splitWorker : negated conditional → KILLED
        while (i < len) {
3502 1 1. splitWorker : negated conditional → KILLED
            if (str.charAt(i) == separatorChar) {
3503 2 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
                if (match || preserveAllTokens) {
3504
                    list.add(str.substring(start, i));
3505
                    match = false;
3506
                    lastMatch = true;
3507
                }
3508 1 1. splitWorker : Changed increment from 1 to -1 → TIMED_OUT
                start = ++i;
3509
                continue;
3510
            }
3511
            lastMatch = false;
3512
            match = true;
3513 1 1. splitWorker : Changed increment from 1 to -1 → KILLED
            i++;
3514
        }
3515 3 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
3. splitWorker : negated conditional → KILLED
        if (match || preserveAllTokens && lastMatch) {
3516
            list.add(str.substring(start, i));
3517
        }
3518 1 1. splitWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return list.toArray(new String[list.size()]);
3519
    }
3520
3521
    /**
3522
     * <p>Splits the provided text into an array, separators specified,
3523
     * preserving all tokens, including empty tokens created by adjacent
3524
     * separators. This is an alternative to using StringTokenizer.</p>
3525
     *
3526
     * <p>The separator is not included in the returned String array.
3527
     * Adjacent separators are treated as separators for empty tokens.
3528
     * For more control over the split use the StrTokenizer class.</p>
3529
     *
3530
     * <p>A {@code null} input String returns {@code null}.
3531
     * A {@code null} separatorChars splits on whitespace.</p>
3532
     *
3533
     * <pre>
3534
     * StringUtils.splitPreserveAllTokens(null, *)           = null
3535
     * StringUtils.splitPreserveAllTokens("", *)             = []
3536
     * StringUtils.splitPreserveAllTokens("abc def", null)   = ["abc", "def"]
3537
     * StringUtils.splitPreserveAllTokens("abc def", " ")    = ["abc", "def"]
3538
     * StringUtils.splitPreserveAllTokens("abc  def", " ")   = ["abc", "", def"]
3539
     * StringUtils.splitPreserveAllTokens("ab:cd:ef", ":")   = ["ab", "cd", "ef"]
3540
     * StringUtils.splitPreserveAllTokens("ab:cd:ef:", ":")  = ["ab", "cd", "ef", ""]
3541
     * StringUtils.splitPreserveAllTokens("ab:cd:ef::", ":") = ["ab", "cd", "ef", "", ""]
3542
     * StringUtils.splitPreserveAllTokens("ab::cd:ef", ":")  = ["ab", "", cd", "ef"]
3543
     * StringUtils.splitPreserveAllTokens(":cd:ef", ":")     = ["", cd", "ef"]
3544
     * StringUtils.splitPreserveAllTokens("::cd:ef", ":")    = ["", "", cd", "ef"]
3545
     * StringUtils.splitPreserveAllTokens(":cd:ef:", ":")    = ["", cd", "ef", ""]
3546
     * </pre>
3547
     *
3548
     * @param str  the String to parse, may be {@code null}
3549
     * @param separatorChars  the characters used as the delimiters,
3550
     *  {@code null} splits on whitespace
3551
     * @return an array of parsed Strings, {@code null} if null String input
3552
     * @since 2.1
3553
     */
3554
    public static String[] splitPreserveAllTokens(final String str, final String separatorChars) {
3555 1 1. splitPreserveAllTokens : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, separatorChars, -1, true);
3556
    }
3557
3558
    /**
3559
     * <p>Splits the provided text into an array with a maximum length,
3560
     * separators specified, preserving all tokens, including empty tokens
3561
     * created by adjacent separators.</p>
3562
     *
3563
     * <p>The separator is not included in the returned String array.
3564
     * Adjacent separators are treated as separators for empty tokens.
3565
     * Adjacent separators are treated as one separator.</p>
3566
     *
3567
     * <p>A {@code null} input String returns {@code null}.
3568
     * A {@code null} separatorChars splits on whitespace.</p>
3569
     *
3570
     * <p>If more than {@code max} delimited substrings are found, the last
3571
     * returned string includes all characters after the first {@code max - 1}
3572
     * returned strings (including separator characters).</p>
3573
     *
3574
     * <pre>
3575
     * StringUtils.splitPreserveAllTokens(null, *, *)            = null
3576
     * StringUtils.splitPreserveAllTokens("", *, *)              = []
3577
     * StringUtils.splitPreserveAllTokens("ab de fg", null, 0)   = ["ab", "cd", "ef"]
3578
     * StringUtils.splitPreserveAllTokens("ab   de fg", null, 0) = ["ab", "cd", "ef"]
3579
     * StringUtils.splitPreserveAllTokens("ab:cd:ef", ":", 0)    = ["ab", "cd", "ef"]
3580
     * StringUtils.splitPreserveAllTokens("ab:cd:ef", ":", 2)    = ["ab", "cd:ef"]
3581
     * StringUtils.splitPreserveAllTokens("ab   de fg", null, 2) = ["ab", "  de fg"]
3582
     * StringUtils.splitPreserveAllTokens("ab   de fg", null, 3) = ["ab", "", " de fg"]
3583
     * StringUtils.splitPreserveAllTokens("ab   de fg", null, 4) = ["ab", "", "", "de fg"]
3584
     * </pre>
3585
     *
3586
     * @param str  the String to parse, may be {@code null}
3587
     * @param separatorChars  the characters used as the delimiters,
3588
     *  {@code null} splits on whitespace
3589
     * @param max  the maximum number of elements to include in the
3590
     *  array. A zero or negative value implies no limit
3591
     * @return an array of parsed Strings, {@code null} if null String input
3592
     * @since 2.1
3593
     */
3594
    public static String[] splitPreserveAllTokens(final String str, final String separatorChars, final int max) {
3595 1 1. splitPreserveAllTokens : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, separatorChars, max, true);
3596
    }
3597
3598
    /**
3599
     * Performs the logic for the {@code split} and
3600
     * {@code splitPreserveAllTokens} methods that return a maximum array
3601
     * length.
3602
     *
3603
     * @param str  the String to parse, may be {@code null}
3604
     * @param separatorChars the separate character
3605
     * @param max  the maximum number of elements to include in the
3606
     *  array. A zero or negative value implies no limit.
3607
     * @param preserveAllTokens if {@code true}, adjacent separators are
3608
     * treated as empty token separators; if {@code false}, adjacent
3609
     * separators are treated as one separator.
3610
     * @return an array of parsed Strings, {@code null} if null String input
3611
     */
3612
    private static String[] splitWorker(final String str, final String separatorChars, final int max, final boolean preserveAllTokens) {
3613
        // Performance tuned for 2.0 (JDK1.4)
3614
        // Direct code is quicker than StringTokenizer.
3615
        // Also, StringTokenizer uses isSpace() not isWhitespace()
3616
3617 1 1. splitWorker : negated conditional → KILLED
        if (str == null) {
3618 1 1. splitWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3619
        }
3620
        final int len = str.length();
3621 1 1. splitWorker : negated conditional → KILLED
        if (len == 0) {
3622 1 1. splitWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ArrayUtils.EMPTY_STRING_ARRAY;
3623
        }
3624
        final List<String> list = new ArrayList<>();
3625
        int sizePlus1 = 1;
3626
        int i = 0, start = 0;
3627
        boolean match = false;
3628
        boolean lastMatch = false;
3629 1 1. splitWorker : negated conditional → KILLED
        if (separatorChars == null) {
3630
            // Null separator means use whitespace
3631 2 1. splitWorker : changed conditional boundary → KILLED
2. splitWorker : negated conditional → KILLED
            while (i < len) {
3632 1 1. splitWorker : negated conditional → KILLED
                if (Character.isWhitespace(str.charAt(i))) {
3633 2 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
                    if (match || preserveAllTokens) {
3634
                        lastMatch = true;
3635 2 1. splitWorker : Changed increment from 1 to -1 → KILLED
2. splitWorker : negated conditional → KILLED
                        if (sizePlus1++ == max) {
3636
                            i = len;
3637
                            lastMatch = false;
3638
                        }
3639
                        list.add(str.substring(start, i));
3640
                        match = false;
3641
                    }
3642 1 1. splitWorker : Changed increment from 1 to -1 → TIMED_OUT
                    start = ++i;
3643
                    continue;
3644
                }
3645
                lastMatch = false;
3646
                match = true;
3647 1 1. splitWorker : Changed increment from 1 to -1 → KILLED
                i++;
3648
            }
3649 1 1. splitWorker : negated conditional → SURVIVED
        } else if (separatorChars.length() == 1) {
3650
            // Optimise 1 character case
3651
            final char sep = separatorChars.charAt(0);
3652 2 1. splitWorker : changed conditional boundary → KILLED
2. splitWorker : negated conditional → KILLED
            while (i < len) {
3653 1 1. splitWorker : negated conditional → KILLED
                if (str.charAt(i) == sep) {
3654 2 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
                    if (match || preserveAllTokens) {
3655
                        lastMatch = true;
3656 2 1. splitWorker : Changed increment from 1 to -1 → KILLED
2. splitWorker : negated conditional → KILLED
                        if (sizePlus1++ == max) {
3657
                            i = len;
3658
                            lastMatch = false;
3659
                        }
3660
                        list.add(str.substring(start, i));
3661
                        match = false;
3662
                    }
3663 1 1. splitWorker : Changed increment from 1 to -1 → TIMED_OUT
                    start = ++i;
3664
                    continue;
3665
                }
3666
                lastMatch = false;
3667
                match = true;
3668 1 1. splitWorker : Changed increment from 1 to -1 → KILLED
                i++;
3669
            }
3670
        } else {
3671
            // standard case
3672 2 1. splitWorker : changed conditional boundary → KILLED
2. splitWorker : negated conditional → KILLED
            while (i < len) {
3673 2 1. splitWorker : changed conditional boundary → KILLED
2. splitWorker : negated conditional → KILLED
                if (separatorChars.indexOf(str.charAt(i)) >= 0) {
3674 2 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
                    if (match || preserveAllTokens) {
3675
                        lastMatch = true;
3676 2 1. splitWorker : Changed increment from 1 to -1 → KILLED
2. splitWorker : negated conditional → KILLED
                        if (sizePlus1++ == max) {
3677
                            i = len;
3678
                            lastMatch = false;
3679
                        }
3680
                        list.add(str.substring(start, i));
3681
                        match = false;
3682
                    }
3683 1 1. splitWorker : Changed increment from 1 to -1 → TIMED_OUT
                    start = ++i;
3684
                    continue;
3685
                }
3686
                lastMatch = false;
3687
                match = true;
3688 1 1. splitWorker : Changed increment from 1 to -1 → KILLED
                i++;
3689
            }
3690
        }
3691 3 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
3. splitWorker : negated conditional → KILLED
        if (match || preserveAllTokens && lastMatch) {
3692
            list.add(str.substring(start, i));
3693
        }
3694 1 1. splitWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return list.toArray(new String[list.size()]);
3695
    }
3696
3697
    /**
3698
     * <p>Splits a String by Character type as returned by
3699
     * {@code java.lang.Character.getType(char)}. Groups of contiguous
3700
     * characters of the same type are returned as complete tokens.
3701
     * <pre>
3702
     * StringUtils.splitByCharacterType(null)         = null
3703
     * StringUtils.splitByCharacterType("")           = []
3704
     * StringUtils.splitByCharacterType("ab de fg")   = ["ab", " ", "de", " ", "fg"]
3705
     * StringUtils.splitByCharacterType("ab   de fg") = ["ab", "   ", "de", " ", "fg"]
3706
     * StringUtils.splitByCharacterType("ab:cd:ef")   = ["ab", ":", "cd", ":", "ef"]
3707
     * StringUtils.splitByCharacterType("number5")    = ["number", "5"]
3708
     * StringUtils.splitByCharacterType("fooBar")     = ["foo", "B", "ar"]
3709
     * StringUtils.splitByCharacterType("foo200Bar")  = ["foo", "200", "B", "ar"]
3710
     * StringUtils.splitByCharacterType("ASFRules")   = ["ASFR", "ules"]
3711
     * </pre>
3712
     * @param str the String to split, may be {@code null}
3713
     * @return an array of parsed Strings, {@code null} if null String input
3714
     * @since 2.4
3715
     */
3716
    public static String[] splitByCharacterType(final String str) {
3717 1 1. splitByCharacterType : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitByCharacterType(str, false);
3718
    }
3719
3720
    /**
3721
     * <p>Splits a String by Character type as returned by
3722
     * {@code java.lang.Character.getType(char)}. Groups of contiguous
3723
     * characters of the same type are returned as complete tokens, with the
3724
     * following exception: the character of type
3725
     * {@code Character.UPPERCASE_LETTER}, if any, immediately
3726
     * preceding a token of type {@code Character.LOWERCASE_LETTER}
3727
     * will belong to the following token rather than to the preceding, if any,
3728
     * {@code Character.UPPERCASE_LETTER} token.
3729
     * <pre>
3730
     * StringUtils.splitByCharacterTypeCamelCase(null)         = null
3731
     * StringUtils.splitByCharacterTypeCamelCase("")           = []
3732
     * StringUtils.splitByCharacterTypeCamelCase("ab de fg")   = ["ab", " ", "de", " ", "fg"]
3733
     * StringUtils.splitByCharacterTypeCamelCase("ab   de fg") = ["ab", "   ", "de", " ", "fg"]
3734
     * StringUtils.splitByCharacterTypeCamelCase("ab:cd:ef")   = ["ab", ":", "cd", ":", "ef"]
3735
     * StringUtils.splitByCharacterTypeCamelCase("number5")    = ["number", "5"]
3736
     * StringUtils.splitByCharacterTypeCamelCase("fooBar")     = ["foo", "Bar"]
3737
     * StringUtils.splitByCharacterTypeCamelCase("foo200Bar")  = ["foo", "200", "Bar"]
3738
     * StringUtils.splitByCharacterTypeCamelCase("ASFRules")   = ["ASF", "Rules"]
3739
     * </pre>
3740
     * @param str the String to split, may be {@code null}
3741
     * @return an array of parsed Strings, {@code null} if null String input
3742
     * @since 2.4
3743
     */
3744
    public static String[] splitByCharacterTypeCamelCase(final String str) {
3745 1 1. splitByCharacterTypeCamelCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterTypeCamelCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitByCharacterType(str, true);
3746
    }
3747
3748
    /**
3749
     * <p>Splits a String by Character type as returned by
3750
     * {@code java.lang.Character.getType(char)}. Groups of contiguous
3751
     * characters of the same type are returned as complete tokens, with the
3752
     * following exception: if {@code camelCase} is {@code true},
3753
     * the character of type {@code Character.UPPERCASE_LETTER}, if any,
3754
     * immediately preceding a token of type {@code Character.LOWERCASE_LETTER}
3755
     * will belong to the following token rather than to the preceding, if any,
3756
     * {@code Character.UPPERCASE_LETTER} token.
3757
     * @param str the String to split, may be {@code null}
3758
     * @param camelCase whether to use so-called "camel-case" for letter types
3759
     * @return an array of parsed Strings, {@code null} if null String input
3760
     * @since 2.4
3761
     */
3762
    private static String[] splitByCharacterType(final String str, final boolean camelCase) {
3763 1 1. splitByCharacterType : negated conditional → KILLED
        if (str == null) {
3764 1 1. splitByCharacterType : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3765
        }
3766 1 1. splitByCharacterType : negated conditional → KILLED
        if (str.isEmpty()) {
3767 1 1. splitByCharacterType : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ArrayUtils.EMPTY_STRING_ARRAY;
3768
        }
3769
        final char[] c = str.toCharArray();
3770
        final List<String> list = new ArrayList<>();
3771
        int tokenStart = 0;
3772
        int currentType = Character.getType(c[tokenStart]);
3773 4 1. splitByCharacterType : changed conditional boundary → KILLED
2. splitByCharacterType : Changed increment from 1 to -1 → KILLED
3. splitByCharacterType : Replaced integer addition with subtraction → KILLED
4. splitByCharacterType : negated conditional → KILLED
        for (int pos = tokenStart + 1; pos < c.length; pos++) {
3774
            final int type = Character.getType(c[pos]);
3775 1 1. splitByCharacterType : negated conditional → KILLED
            if (type == currentType) {
3776
                continue;
3777
            }
3778 3 1. splitByCharacterType : negated conditional → KILLED
2. splitByCharacterType : negated conditional → KILLED
3. splitByCharacterType : negated conditional → KILLED
            if (camelCase && type == Character.LOWERCASE_LETTER && currentType == Character.UPPERCASE_LETTER) {
3779 1 1. splitByCharacterType : Replaced integer subtraction with addition → KILLED
                final int newTokenStart = pos - 1;
3780 1 1. splitByCharacterType : negated conditional → KILLED
                if (newTokenStart != tokenStart) {
3781 1 1. splitByCharacterType : Replaced integer subtraction with addition → SURVIVED
                    list.add(new String(c, tokenStart, newTokenStart - tokenStart));
3782
                    tokenStart = newTokenStart;
3783
                }
3784
            } else {
3785 1 1. splitByCharacterType : Replaced integer subtraction with addition → KILLED
                list.add(new String(c, tokenStart, pos - tokenStart));
3786
                tokenStart = pos;
3787
            }
3788
            currentType = type;
3789
        }
3790 1 1. splitByCharacterType : Replaced integer subtraction with addition → KILLED
        list.add(new String(c, tokenStart, c.length - tokenStart));
3791 1 1. splitByCharacterType : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return list.toArray(new String[list.size()]);
3792
    }
3793
3794
    // Joining
3795
    //-----------------------------------------------------------------------
3796
    /**
3797
     * <p>Joins the elements of the provided array into a single String
3798
     * containing the provided list of elements.</p>
3799
     *
3800
     * <p>No separator is added to the joined String.
3801
     * Null objects or empty strings within the array are represented by
3802
     * empty strings.</p>
3803
     *
3804
     * <pre>
3805
     * StringUtils.join(null)            = null
3806
     * StringUtils.join([])              = ""
3807
     * StringUtils.join([null])          = ""
3808
     * StringUtils.join(["a", "b", "c"]) = "abc"
3809
     * StringUtils.join([null, "", "a"]) = "a"
3810
     * </pre>
3811
     *
3812
     * @param <T> the specific type of values to join together
3813
     * @param elements  the values to join together, may be null
3814
     * @return the joined String, {@code null} if null array input
3815
     * @since 2.0
3816
     * @since 3.0 Changed signature to use varargs
3817
     */
3818
    @SafeVarargs
3819
    public static <T> String join(final T... elements) {
3820 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(elements, null);
3821
    }
3822
3823
    /**
3824
     * <p>Joins the elements of the provided array into a single String
3825
     * containing the provided list of elements.</p>
3826
     *
3827
     * <p>No delimiter is added before or after the list.
3828
     * Null objects or empty strings within the array are represented by
3829
     * empty strings.</p>
3830
     *
3831
     * <pre>
3832
     * StringUtils.join(null, *)               = null
3833
     * StringUtils.join([], *)                 = ""
3834
     * StringUtils.join([null], *)             = ""
3835
     * StringUtils.join(["a", "b", "c"], ';')  = "a;b;c"
3836
     * StringUtils.join(["a", "b", "c"], null) = "abc"
3837
     * StringUtils.join([null, "", "a"], ';')  = ";;a"
3838
     * </pre>
3839
     *
3840
     * @param array  the array of values to join together, may be null
3841
     * @param separator  the separator character to use
3842
     * @return the joined String, {@code null} if null array input
3843
     * @since 2.0
3844
     */
3845
    public static String join(final Object[] array, final char separator) {
3846 1 1. join : negated conditional → KILLED
        if (array == null) {
3847 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3848
        }
3849 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3850
    }
3851
3852
    /**
3853
     * <p>
3854
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3855
     * </p>
3856
     *
3857
     * <p>
3858
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3859
     * by empty strings.
3860
     * </p>
3861
     *
3862
     * <pre>
3863
     * StringUtils.join(null, *)               = null
3864
     * StringUtils.join([], *)                 = ""
3865
     * StringUtils.join([null], *)             = ""
3866
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
3867
     * StringUtils.join([1, 2, 3], null) = "123"
3868
     * </pre>
3869
     *
3870
     * @param array
3871
     *            the array of values to join together, may be null
3872
     * @param separator
3873
     *            the separator character to use
3874
     * @return the joined String, {@code null} if null array input
3875
     * @since 3.2
3876
     */
3877
    public static String join(final long[] array, final char separator) {
3878 1 1. join : negated conditional → KILLED
        if (array == null) {
3879 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3880
        }
3881 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3882
    }
3883
3884
    /**
3885
     * <p>
3886
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3887
     * </p>
3888
     *
3889
     * <p>
3890
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3891
     * by empty strings.
3892
     * </p>
3893
     *
3894
     * <pre>
3895
     * StringUtils.join(null, *)               = null
3896
     * StringUtils.join([], *)                 = ""
3897
     * StringUtils.join([null], *)             = ""
3898
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
3899
     * StringUtils.join([1, 2, 3], null) = "123"
3900
     * </pre>
3901
     *
3902
     * @param array
3903
     *            the array of values to join together, may be null
3904
     * @param separator
3905
     *            the separator character to use
3906
     * @return the joined String, {@code null} if null array input
3907
     * @since 3.2
3908
     */
3909
    public static String join(final int[] array, final char separator) {
3910 1 1. join : negated conditional → KILLED
        if (array == null) {
3911 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3912
        }
3913 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3914
    }
3915
3916
    /**
3917
     * <p>
3918
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3919
     * </p>
3920
     *
3921
     * <p>
3922
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3923
     * by empty strings.
3924
     * </p>
3925
     *
3926
     * <pre>
3927
     * StringUtils.join(null, *)               = null
3928
     * StringUtils.join([], *)                 = ""
3929
     * StringUtils.join([null], *)             = ""
3930
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
3931
     * StringUtils.join([1, 2, 3], null) = "123"
3932
     * </pre>
3933
     *
3934
     * @param array
3935
     *            the array of values to join together, may be null
3936
     * @param separator
3937
     *            the separator character to use
3938
     * @return the joined String, {@code null} if null array input
3939
     * @since 3.2
3940
     */
3941
    public static String join(final short[] array, final char separator) {
3942 1 1. join : negated conditional → KILLED
        if (array == null) {
3943 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3944
        }
3945 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3946
    }
3947
3948
    /**
3949
     * <p>
3950
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3951
     * </p>
3952
     *
3953
     * <p>
3954
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3955
     * by empty strings.
3956
     * </p>
3957
     *
3958
     * <pre>
3959
     * StringUtils.join(null, *)               = null
3960
     * StringUtils.join([], *)                 = ""
3961
     * StringUtils.join([null], *)             = ""
3962
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
3963
     * StringUtils.join([1, 2, 3], null) = "123"
3964
     * </pre>
3965
     *
3966
     * @param array
3967
     *            the array of values to join together, may be null
3968
     * @param separator
3969
     *            the separator character to use
3970
     * @return the joined String, {@code null} if null array input
3971
     * @since 3.2
3972
     */
3973
    public static String join(final byte[] array, final char separator) {
3974 1 1. join : negated conditional → KILLED
        if (array == null) {
3975 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3976
        }
3977 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3978
    }
3979
3980
    /**
3981
     * <p>
3982
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3983
     * </p>
3984
     *
3985
     * <p>
3986
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3987
     * by empty strings.
3988
     * </p>
3989
     *
3990
     * <pre>
3991
     * StringUtils.join(null, *)               = null
3992
     * StringUtils.join([], *)                 = ""
3993
     * StringUtils.join([null], *)             = ""
3994
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
3995
     * StringUtils.join([1, 2, 3], null) = "123"
3996
     * </pre>
3997
     *
3998
     * @param array
3999
     *            the array of values to join together, may be null
4000
     * @param separator
4001
     *            the separator character to use
4002
     * @return the joined String, {@code null} if null array input
4003
     * @since 3.2
4004
     */
4005
    public static String join(final char[] array, final char separator) {
4006 1 1. join : negated conditional → KILLED
        if (array == null) {
4007 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4008
        }
4009 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
4010
    }
4011
4012
    /**
4013
     * <p>
4014
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4015
     * </p>
4016
     *
4017
     * <p>
4018
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4019
     * by empty strings.
4020
     * </p>
4021
     *
4022
     * <pre>
4023
     * StringUtils.join(null, *)               = null
4024
     * StringUtils.join([], *)                 = ""
4025
     * StringUtils.join([null], *)             = ""
4026
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4027
     * StringUtils.join([1, 2, 3], null) = "123"
4028
     * </pre>
4029
     *
4030
     * @param array
4031
     *            the array of values to join together, may be null
4032
     * @param separator
4033
     *            the separator character to use
4034
     * @return the joined String, {@code null} if null array input
4035
     * @since 3.2
4036
     */
4037
    public static String join(final float[] array, final char separator) {
4038 1 1. join : negated conditional → KILLED
        if (array == null) {
4039 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4040
        }
4041 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
4042
    }
4043
4044
    /**
4045
     * <p>
4046
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4047
     * </p>
4048
     *
4049
     * <p>
4050
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4051
     * by empty strings.
4052
     * </p>
4053
     *
4054
     * <pre>
4055
     * StringUtils.join(null, *)               = null
4056
     * StringUtils.join([], *)                 = ""
4057
     * StringUtils.join([null], *)             = ""
4058
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4059
     * StringUtils.join([1, 2, 3], null) = "123"
4060
     * </pre>
4061
     *
4062
     * @param array
4063
     *            the array of values to join together, may be null
4064
     * @param separator
4065
     *            the separator character to use
4066
     * @return the joined String, {@code null} if null array input
4067
     * @since 3.2
4068
     */
4069
    public static String join(final double[] array, final char separator) {
4070 1 1. join : negated conditional → KILLED
        if (array == null) {
4071 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4072
        }
4073 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
4074
    }
4075
4076
4077
    /**
4078
     * <p>Joins the elements of the provided array into a single String
4079
     * containing the provided list of elements.</p>
4080
     *
4081
     * <p>No delimiter is added before or after the list.
4082
     * Null objects or empty strings within the array are represented by
4083
     * empty strings.</p>
4084
     *
4085
     * <pre>
4086
     * StringUtils.join(null, *)               = null
4087
     * StringUtils.join([], *)                 = ""
4088
     * StringUtils.join([null], *)             = ""
4089
     * StringUtils.join(["a", "b", "c"], ';')  = "a;b;c"
4090
     * StringUtils.join(["a", "b", "c"], null) = "abc"
4091
     * StringUtils.join([null, "", "a"], ';')  = ";;a"
4092
     * </pre>
4093
     *
4094
     * @param array  the array of values to join together, may be null
4095
     * @param separator  the separator character to use
4096
     * @param startIndex the first index to start joining from.  It is
4097
     * an error to pass in an end index past the end of the array
4098
     * @param endIndex the index to stop joining from (exclusive). It is
4099
     * an error to pass in an end index past the end of the array
4100
     * @return the joined String, {@code null} if null array input
4101
     * @since 2.0
4102
     */
4103
    public static String join(final Object[] array, final char separator, final int startIndex, final int endIndex) {
4104 1 1. join : negated conditional → KILLED
        if (array == null) {
4105 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4106
        }
4107 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4108 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4109 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4110
        }
4111 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4112 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4113 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4114
                buf.append(separator);
4115
            }
4116 1 1. join : negated conditional → KILLED
            if (array[i] != null) {
4117
                buf.append(array[i]);
4118
            }
4119
        }
4120 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4121
    }
4122
4123
    /**
4124
     * <p>
4125
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4126
     * </p>
4127
     *
4128
     * <p>
4129
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4130
     * by empty strings.
4131
     * </p>
4132
     *
4133
     * <pre>
4134
     * StringUtils.join(null, *)               = null
4135
     * StringUtils.join([], *)                 = ""
4136
     * StringUtils.join([null], *)             = ""
4137
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4138
     * StringUtils.join([1, 2, 3], null) = "123"
4139
     * </pre>
4140
     *
4141
     * @param array
4142
     *            the array of values to join together, may be null
4143
     * @param separator
4144
     *            the separator character to use
4145
     * @param startIndex
4146
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4147
     *            array
4148
     * @param endIndex
4149
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4150
     *            the array
4151
     * @return the joined String, {@code null} if null array input
4152
     * @since 3.2
4153
     */
4154
    public static String join(final long[] array, final char separator, final int startIndex, final int endIndex) {
4155 1 1. join : negated conditional → KILLED
        if (array == null) {
4156 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4157
        }
4158 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4159 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4160 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4161
        }
4162 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4163 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4164 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4165
                buf.append(separator);
4166
            }
4167
            buf.append(array[i]);
4168
        }
4169 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4170
    }
4171
4172
    /**
4173
     * <p>
4174
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4175
     * </p>
4176
     *
4177
     * <p>
4178
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4179
     * by empty strings.
4180
     * </p>
4181
     *
4182
     * <pre>
4183
     * StringUtils.join(null, *)               = null
4184
     * StringUtils.join([], *)                 = ""
4185
     * StringUtils.join([null], *)             = ""
4186
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4187
     * StringUtils.join([1, 2, 3], null) = "123"
4188
     * </pre>
4189
     *
4190
     * @param array
4191
     *            the array of values to join together, may be null
4192
     * @param separator
4193
     *            the separator character to use
4194
     * @param startIndex
4195
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4196
     *            array
4197
     * @param endIndex
4198
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4199
     *            the array
4200
     * @return the joined String, {@code null} if null array input
4201
     * @since 3.2
4202
     */
4203
    public static String join(final int[] array, final char separator, final int startIndex, final int endIndex) {
4204 1 1. join : negated conditional → KILLED
        if (array == null) {
4205 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4206
        }
4207 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4208 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4209 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4210
        }
4211 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4212 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4213 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4214
                buf.append(separator);
4215
            }
4216
            buf.append(array[i]);
4217
        }
4218 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4219
    }
4220
4221
    /**
4222
     * <p>
4223
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4224
     * </p>
4225
     *
4226
     * <p>
4227
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4228
     * by empty strings.
4229
     * </p>
4230
     *
4231
     * <pre>
4232
     * StringUtils.join(null, *)               = null
4233
     * StringUtils.join([], *)                 = ""
4234
     * StringUtils.join([null], *)             = ""
4235
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4236
     * StringUtils.join([1, 2, 3], null) = "123"
4237
     * </pre>
4238
     *
4239
     * @param array
4240
     *            the array of values to join together, may be null
4241
     * @param separator
4242
     *            the separator character to use
4243
     * @param startIndex
4244
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4245
     *            array
4246
     * @param endIndex
4247
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4248
     *            the array
4249
     * @return the joined String, {@code null} if null array input
4250
     * @since 3.2
4251
     */
4252
    public static String join(final byte[] array, final char separator, final int startIndex, final int endIndex) {
4253 1 1. join : negated conditional → KILLED
        if (array == null) {
4254 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4255
        }
4256 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4257 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4258 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4259
        }
4260 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4261 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4262 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4263
                buf.append(separator);
4264
            }
4265
            buf.append(array[i]);
4266
        }
4267 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4268
    }
4269
4270
    /**
4271
     * <p>
4272
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4273
     * </p>
4274
     *
4275
     * <p>
4276
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4277
     * by empty strings.
4278
     * </p>
4279
     *
4280
     * <pre>
4281
     * StringUtils.join(null, *)               = null
4282
     * StringUtils.join([], *)                 = ""
4283
     * StringUtils.join([null], *)             = ""
4284
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4285
     * StringUtils.join([1, 2, 3], null) = "123"
4286
     * </pre>
4287
     *
4288
     * @param array
4289
     *            the array of values to join together, may be null
4290
     * @param separator
4291
     *            the separator character to use
4292
     * @param startIndex
4293
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4294
     *            array
4295
     * @param endIndex
4296
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4297
     *            the array
4298
     * @return the joined String, {@code null} if null array input
4299
     * @since 3.2
4300
     */
4301
    public static String join(final short[] array, final char separator, final int startIndex, final int endIndex) {
4302 1 1. join : negated conditional → KILLED
        if (array == null) {
4303 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4304
        }
4305 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4306 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4307 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4308
        }
4309 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4310 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4311 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4312
                buf.append(separator);
4313
            }
4314
            buf.append(array[i]);
4315
        }
4316 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4317
    }
4318
4319
    /**
4320
     * <p>
4321
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4322
     * </p>
4323
     *
4324
     * <p>
4325
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4326
     * by empty strings.
4327
     * </p>
4328
     *
4329
     * <pre>
4330
     * StringUtils.join(null, *)               = null
4331
     * StringUtils.join([], *)                 = ""
4332
     * StringUtils.join([null], *)             = ""
4333
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4334
     * StringUtils.join([1, 2, 3], null) = "123"
4335
     * </pre>
4336
     *
4337
     * @param array
4338
     *            the array of values to join together, may be null
4339
     * @param separator
4340
     *            the separator character to use
4341
     * @param startIndex
4342
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4343
     *            array
4344
     * @param endIndex
4345
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4346
     *            the array
4347
     * @return the joined String, {@code null} if null array input
4348
     * @since 3.2
4349
     */
4350
    public static String join(final char[] array, final char separator, final int startIndex, final int endIndex) {
4351 1 1. join : negated conditional → KILLED
        if (array == null) {
4352 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4353
        }
4354 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4355 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4356 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4357
        }
4358 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4359 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4360 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4361
                buf.append(separator);
4362
            }
4363
            buf.append(array[i]);
4364
        }
4365 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4366
    }
4367
4368
    /**
4369
     * <p>
4370
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4371
     * </p>
4372
     *
4373
     * <p>
4374
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4375
     * by empty strings.
4376
     * </p>
4377
     *
4378
     * <pre>
4379
     * StringUtils.join(null, *)               = null
4380
     * StringUtils.join([], *)                 = ""
4381
     * StringUtils.join([null], *)             = ""
4382
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4383
     * StringUtils.join([1, 2, 3], null) = "123"
4384
     * </pre>
4385
     *
4386
     * @param array
4387
     *            the array of values to join together, may be null
4388
     * @param separator
4389
     *            the separator character to use
4390
     * @param startIndex
4391
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4392
     *            array
4393
     * @param endIndex
4394
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4395
     *            the array
4396
     * @return the joined String, {@code null} if null array input
4397
     * @since 3.2
4398
     */
4399
    public static String join(final double[] array, final char separator, final int startIndex, final int endIndex) {
4400 1 1. join : negated conditional → KILLED
        if (array == null) {
4401 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4402
        }
4403 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4404 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4405 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4406
        }
4407 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4408 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4409 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4410
                buf.append(separator);
4411
            }
4412
            buf.append(array[i]);
4413
        }
4414 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4415
    }
4416
4417
    /**
4418
     * <p>
4419
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4420
     * </p>
4421
     *
4422
     * <p>
4423
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4424
     * by empty strings.
4425
     * </p>
4426
     *
4427
     * <pre>
4428
     * StringUtils.join(null, *)               = null
4429
     * StringUtils.join([], *)                 = ""
4430
     * StringUtils.join([null], *)             = ""
4431
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4432
     * StringUtils.join([1, 2, 3], null) = "123"
4433
     * </pre>
4434
     *
4435
     * @param array
4436
     *            the array of values to join together, may be null
4437
     * @param separator
4438
     *            the separator character to use
4439
     * @param startIndex
4440
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4441
     *            array
4442
     * @param endIndex
4443
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4444
     *            the array
4445
     * @return the joined String, {@code null} if null array input
4446
     * @since 3.2
4447
     */
4448
    public static String join(final float[] array, final char separator, final int startIndex, final int endIndex) {
4449 1 1. join : negated conditional → KILLED
        if (array == null) {
4450 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4451
        }
4452 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4453 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4454 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4455
        }
4456 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4457 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4458 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4459
                buf.append(separator);
4460
            }
4461
            buf.append(array[i]);
4462
        }
4463 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4464
    }
4465
4466
4467
    /**
4468
     * <p>Joins the elements of the provided array into a single String
4469
     * containing the provided list of elements.</p>
4470
     *
4471
     * <p>No delimiter is added before or after the list.
4472
     * A {@code null} separator is the same as an empty String ("").
4473
     * Null objects or empty strings within the array are represented by
4474
     * empty strings.</p>
4475
     *
4476
     * <pre>
4477
     * StringUtils.join(null, *)                = null
4478
     * StringUtils.join([], *)                  = ""
4479
     * StringUtils.join([null], *)              = ""
4480
     * StringUtils.join(["a", "b", "c"], "--")  = "a--b--c"
4481
     * StringUtils.join(["a", "b", "c"], null)  = "abc"
4482
     * StringUtils.join(["a", "b", "c"], "")    = "abc"
4483
     * StringUtils.join([null, "", "a"], ',')   = ",,a"
4484
     * </pre>
4485
     *
4486
     * @param array  the array of values to join together, may be null
4487
     * @param separator  the separator character to use, null treated as ""
4488
     * @return the joined String, {@code null} if null array input
4489
     */
4490
    public static String join(final Object[] array, final String separator) {
4491 1 1. join : negated conditional → KILLED
        if (array == null) {
4492 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4493
        }
4494 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
4495
    }
4496
4497
    /**
4498
     * <p>Joins the elements of the provided array into a single String
4499
     * containing the provided list of elements.</p>
4500
     *
4501
     * <p>No delimiter is added before or after the list.
4502
     * A {@code null} separator is the same as an empty String ("").
4503
     * Null objects or empty strings within the array are represented by
4504
     * empty strings.</p>
4505
     *
4506
     * <pre>
4507
     * StringUtils.join(null, *, *, *)                = null
4508
     * StringUtils.join([], *, *, *)                  = ""
4509
     * StringUtils.join([null], *, *, *)              = ""
4510
     * StringUtils.join(["a", "b", "c"], "--", 0, 3)  = "a--b--c"
4511
     * StringUtils.join(["a", "b", "c"], "--", 1, 3)  = "b--c"
4512
     * StringUtils.join(["a", "b", "c"], "--", 2, 3)  = "c"
4513
     * StringUtils.join(["a", "b", "c"], "--", 2, 2)  = ""
4514
     * StringUtils.join(["a", "b", "c"], null, 0, 3)  = "abc"
4515
     * StringUtils.join(["a", "b", "c"], "", 0, 3)    = "abc"
4516
     * StringUtils.join([null, "", "a"], ',', 0, 3)   = ",,a"
4517
     * </pre>
4518
     *
4519
     * @param array  the array of values to join together, may be null
4520
     * @param separator  the separator character to use, null treated as ""
4521
     * @param startIndex the first index to start joining from.
4522
     * @param endIndex the index to stop joining from (exclusive).
4523
     * @return the joined String, {@code null} if null array input; or the empty string
4524
     * if {@code endIndex - startIndex <= 0}. The number of joined entries is given by
4525
     * {@code endIndex - startIndex}
4526
     * @throws ArrayIndexOutOfBoundsException ife<br>
4527
     * {@code startIndex < 0} or <br>
4528
     * {@code startIndex >= array.length()} or <br>
4529
     * {@code endIndex < 0} or <br>
4530
     * {@code endIndex > array.length()}
4531
     */
4532
    public static String join(final Object[] array, String separator, final int startIndex, final int endIndex) {
4533 1 1. join : negated conditional → KILLED
        if (array == null) {
4534 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE
            return null;
4535
        }
4536 1 1. join : negated conditional → KILLED
        if (separator == null) {
4537
            separator = EMPTY;
4538
        }
4539
4540
        // endIndex - startIndex > 0:   Len = NofStrings *(len(firstString) + len(separator))
4541
        //           (Assuming that all Strings are roughly equally long)
4542 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4543 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4544 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4545
        }
4546
4547 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4548
4549 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4550 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4551
                buf.append(separator);
4552
            }
4553 1 1. join : negated conditional → KILLED
            if (array[i] != null) {
4554
                buf.append(array[i]);
4555
            }
4556
        }
4557 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4558
    }
4559
4560
    /**
4561
     * <p>Joins the elements of the provided {@code Iterator} into
4562
     * a single String containing the provided elements.</p>
4563
     *
4564
     * <p>No delimiter is added before or after the list. Null objects or empty
4565
     * strings within the iteration are represented by empty strings.</p>
4566
     *
4567
     * <p>See the examples here: {@link #join(Object[],char)}. </p>
4568
     *
4569
     * @param iterator  the {@code Iterator} of values to join together, may be null
4570
     * @param separator  the separator character to use
4571
     * @return the joined String, {@code null} if null iterator input
4572
     * @since 2.0
4573
     */
4574
    public static String join(final Iterator<?> iterator, final char separator) {
4575
4576
        // handle null, zero and one elements before building a buffer
4577 1 1. join : negated conditional → KILLED
        if (iterator == null) {
4578 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4579
        }
4580 1 1. join : negated conditional → KILLED
        if (!iterator.hasNext()) {
4581 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4582
        }
4583
        final Object first = iterator.next();
4584 1 1. join : negated conditional → KILLED
        if (!iterator.hasNext()) {
4585
            final String result = Objects.toString(first, "");
4586 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return result;
4587
        }
4588
4589
        // two or more elements
4590
        final StringBuilder buf = new StringBuilder(256); // Java default is 16, probably too small
4591 1 1. join : negated conditional → KILLED
        if (first != null) {
4592
            buf.append(first);
4593
        }
4594
4595 1 1. join : negated conditional → KILLED
        while (iterator.hasNext()) {
4596
            buf.append(separator);
4597
            final Object obj = iterator.next();
4598 1 1. join : negated conditional → KILLED
            if (obj != null) {
4599
                buf.append(obj);
4600
            }
4601
        }
4602
4603 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4604
    }
4605
4606
    /**
4607
     * <p>Joins the elements of the provided {@code Iterator} into
4608
     * a single String containing the provided elements.</p>
4609
     *
4610
     * <p>No delimiter is added before or after the list.
4611
     * A {@code null} separator is the same as an empty String ("").</p>
4612
     *
4613
     * <p>See the examples here: {@link #join(Object[],String)}. </p>
4614
     *
4615
     * @param iterator  the {@code Iterator} of values to join together, may be null
4616
     * @param separator  the separator character to use, null treated as ""
4617
     * @return the joined String, {@code null} if null iterator input
4618
     */
4619
    public static String join(final Iterator<?> iterator, final String separator) {
4620
4621
        // handle null, zero and one elements before building a buffer
4622 1 1. join : negated conditional → KILLED
        if (iterator == null) {
4623 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4624
        }
4625 1 1. join : negated conditional → KILLED
        if (!iterator.hasNext()) {
4626 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4627
        }
4628
        final Object first = iterator.next();
4629 1 1. join : negated conditional → KILLED
        if (!iterator.hasNext()) {
4630
            final String result = Objects.toString(first, "");
4631 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return result;
4632
        }
4633
4634
        // two or more elements
4635
        final StringBuilder buf = new StringBuilder(256); // Java default is 16, probably too small
4636 1 1. join : negated conditional → KILLED
        if (first != null) {
4637
            buf.append(first);
4638
        }
4639
4640 1 1. join : negated conditional → KILLED
        while (iterator.hasNext()) {
4641 1 1. join : negated conditional → KILLED
            if (separator != null) {
4642
                buf.append(separator);
4643
            }
4644
            final Object obj = iterator.next();
4645 1 1. join : negated conditional → KILLED
            if (obj != null) {
4646
                buf.append(obj);
4647
            }
4648
        }
4649 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4650
    }
4651
4652
    /**
4653
     * <p>Joins the elements of the provided {@code Iterable} into
4654
     * a single String containing the provided elements.</p>
4655
     *
4656
     * <p>No delimiter is added before or after the list. Null objects or empty
4657
     * strings within the iteration are represented by empty strings.</p>
4658
     *
4659
     * <p>See the examples here: {@link #join(Object[],char)}. </p>
4660
     *
4661
     * @param iterable  the {@code Iterable} providing the values to join together, may be null
4662
     * @param separator  the separator character to use
4663
     * @return the joined String, {@code null} if null iterator input
4664
     * @since 2.3
4665
     */
4666
    public static String join(final Iterable<?> iterable, final char separator) {
4667 1 1. join : negated conditional → KILLED
        if (iterable == null) {
4668 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4669
        }
4670 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(iterable.iterator(), separator);
4671
    }
4672
4673
    /**
4674
     * <p>Joins the elements of the provided {@code Iterable} into
4675
     * a single String containing the provided elements.</p>
4676
     *
4677
     * <p>No delimiter is added before or after the list.
4678
     * A {@code null} separator is the same as an empty String ("").</p>
4679
     *
4680
     * <p>See the examples here: {@link #join(Object[],String)}. </p>
4681
     *
4682
     * @param iterable  the {@code Iterable} providing the values to join together, may be null
4683
     * @param separator  the separator character to use, null treated as ""
4684
     * @return the joined String, {@code null} if null iterator input
4685
     * @since 2.3
4686
     */
4687
    public static String join(final Iterable<?> iterable, final String separator) {
4688 1 1. join : negated conditional → KILLED
        if (iterable == null) {
4689 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4690
        }
4691 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(iterable.iterator(), separator);
4692
    }
4693
4694
    /**
4695
     * <p>Joins the elements of the provided varargs into a
4696
     * single String containing the provided elements.</p>
4697
     *
4698
     * <p>No delimiter is added before or after the list.
4699
     * {@code null} elements and separator are treated as empty Strings ("").</p>
4700
     *
4701
     * <pre>
4702
     * StringUtils.joinWith(",", {"a", "b"})        = "a,b"
4703
     * StringUtils.joinWith(",", {"a", "b",""})     = "a,b,"
4704
     * StringUtils.joinWith(",", {"a", null, "b"})  = "a,,b"
4705
     * StringUtils.joinWith(null, {"a", "b"})       = "ab"
4706
     * </pre>
4707
     *
4708
     * @param separator the separator character to use, null treated as ""
4709
     * @param objects the varargs providing the values to join together. {@code null} elements are treated as ""
4710
     * @return the joined String.
4711
     * @throws java.lang.IllegalArgumentException if a null varargs is provided
4712
     * @since 3.5
4713
     */
4714
    public static String joinWith(final String separator, final Object... objects) {
4715 1 1. joinWith : negated conditional → KILLED
        if (objects == null) {
4716
            throw new IllegalArgumentException("Object varargs must not be null");
4717
        }
4718
4719
        final String sanitizedSeparator = defaultString(separator, StringUtils.EMPTY);
4720
4721
        final StringBuilder result = new StringBuilder();
4722
4723
        final Iterator<Object> iterator = Arrays.asList(objects).iterator();
4724 1 1. joinWith : negated conditional → KILLED
        while (iterator.hasNext()) {
4725
            final String value = Objects.toString(iterator.next(), "");
4726
            result.append(value);
4727
4728 1 1. joinWith : negated conditional → KILLED
            if (iterator.hasNext()) {
4729
                result.append(sanitizedSeparator);
4730
            }
4731
        }
4732
4733 1 1. joinWith : mutated return of Object value for org/apache/commons/lang3/StringUtils::joinWith to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return result.toString();
4734
    }
4735
4736
    // Delete
4737
    //-----------------------------------------------------------------------
4738
    /**
4739
     * <p>Deletes all whitespaces from a String as defined by
4740
     * {@link Character#isWhitespace(char)}.</p>
4741
     *
4742
     * <pre>
4743
     * StringUtils.deleteWhitespace(null)         = null
4744
     * StringUtils.deleteWhitespace("")           = ""
4745
     * StringUtils.deleteWhitespace("abc")        = "abc"
4746
     * StringUtils.deleteWhitespace("   ab  c  ") = "abc"
4747
     * </pre>
4748
     *
4749
     * @param str  the String to delete whitespace from, may be null
4750
     * @return the String without whitespaces, {@code null} if null String input
4751
     */
4752
    public static String deleteWhitespace(final String str) {
4753 1 1. deleteWhitespace : negated conditional → KILLED
        if (isEmpty(str)) {
4754 1 1. deleteWhitespace : mutated return of Object value for org/apache/commons/lang3/StringUtils::deleteWhitespace to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4755
        }
4756
        final int sz = str.length();
4757
        final char[] chs = new char[sz];
4758
        int count = 0;
4759 3 1. deleteWhitespace : changed conditional boundary → KILLED
2. deleteWhitespace : Changed increment from 1 to -1 → KILLED
3. deleteWhitespace : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
4760 1 1. deleteWhitespace : negated conditional → KILLED
            if (!Character.isWhitespace(str.charAt(i))) {
4761 1 1. deleteWhitespace : Changed increment from 1 to -1 → KILLED
                chs[count++] = str.charAt(i);
4762
            }
4763
        }
4764 1 1. deleteWhitespace : negated conditional → KILLED
        if (count == sz) {
4765 1 1. deleteWhitespace : mutated return of Object value for org/apache/commons/lang3/StringUtils::deleteWhitespace to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4766
        }
4767 1 1. deleteWhitespace : mutated return of Object value for org/apache/commons/lang3/StringUtils::deleteWhitespace to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(chs, 0, count);
4768
    }
4769
4770
    // Remove
4771
    //-----------------------------------------------------------------------
4772
    /**
4773
     * <p>Removes a substring only if it is at the beginning of a source string,
4774
     * otherwise returns the source string.</p>
4775
     *
4776
     * <p>A {@code null} source string will return {@code null}.
4777
     * An empty ("") source string will return the empty string.
4778
     * A {@code null} search string will return the source string.</p>
4779
     *
4780
     * <pre>
4781
     * StringUtils.removeStart(null, *)      = null
4782
     * StringUtils.removeStart("", *)        = ""
4783
     * StringUtils.removeStart(*, null)      = *
4784
     * StringUtils.removeStart("www.domain.com", "www.")   = "domain.com"
4785
     * StringUtils.removeStart("domain.com", "www.")       = "domain.com"
4786
     * StringUtils.removeStart("www.domain.com", "domain") = "www.domain.com"
4787
     * StringUtils.removeStart("abc", "")    = "abc"
4788
     * </pre>
4789
     *
4790
     * @param str  the source String to search, may be null
4791
     * @param remove  the String to search for and remove, may be null
4792
     * @return the substring with the string removed if found,
4793
     *  {@code null} if null String input
4794
     * @since 2.1
4795
     */
4796
    public static String removeStart(final String str, final String remove) {
4797 2 1. removeStart : negated conditional → KILLED
2. removeStart : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
4798 1 1. removeStart : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStart to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4799
        }
4800 1 1. removeStart : negated conditional → KILLED
        if (str.startsWith(remove)){
4801 1 1. removeStart : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStart to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(remove.length());
4802
        }
4803 1 1. removeStart : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStart to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
4804
    }
4805
4806
    /**
4807
     * <p>Case insensitive removal of a substring if it is at the beginning of a source string,
4808
     * otherwise returns the source string.</p>
4809
     *
4810
     * <p>A {@code null} source string will return {@code null}.
4811
     * An empty ("") source string will return the empty string.
4812
     * A {@code null} search string will return the source string.</p>
4813
     *
4814
     * <pre>
4815
     * StringUtils.removeStartIgnoreCase(null, *)      = null
4816
     * StringUtils.removeStartIgnoreCase("", *)        = ""
4817
     * StringUtils.removeStartIgnoreCase(*, null)      = *
4818
     * StringUtils.removeStartIgnoreCase("www.domain.com", "www.")   = "domain.com"
4819
     * StringUtils.removeStartIgnoreCase("www.domain.com", "WWW.")   = "domain.com"
4820
     * StringUtils.removeStartIgnoreCase("domain.com", "www.")       = "domain.com"
4821
     * StringUtils.removeStartIgnoreCase("www.domain.com", "domain") = "www.domain.com"
4822
     * StringUtils.removeStartIgnoreCase("abc", "")    = "abc"
4823
     * </pre>
4824
     *
4825
     * @param str  the source String to search, may be null
4826
     * @param remove  the String to search for (case insensitive) and remove, may be null
4827
     * @return the substring with the string removed if found,
4828
     *  {@code null} if null String input
4829
     * @since 2.4
4830
     */
4831
    public static String removeStartIgnoreCase(final String str, final String remove) {
4832 2 1. removeStartIgnoreCase : negated conditional → KILLED
2. removeStartIgnoreCase : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
4833 1 1. removeStartIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4834
        }
4835 1 1. removeStartIgnoreCase : negated conditional → KILLED
        if (startsWithIgnoreCase(str, remove)) {
4836 1 1. removeStartIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(remove.length());
4837
        }
4838 1 1. removeStartIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
4839
    }
4840
4841
    /**
4842
     * <p>Removes a substring only if it is at the end of a source string,
4843
     * otherwise returns the source string.</p>
4844
     *
4845
     * <p>A {@code null} source string will return {@code null}.
4846
     * An empty ("") source string will return the empty string.
4847
     * A {@code null} search string will return the source string.</p>
4848
     *
4849
     * <pre>
4850
     * StringUtils.removeEnd(null, *)      = null
4851
     * StringUtils.removeEnd("", *)        = ""
4852
     * StringUtils.removeEnd(*, null)      = *
4853
     * StringUtils.removeEnd("www.domain.com", ".com.")  = "www.domain.com"
4854
     * StringUtils.removeEnd("www.domain.com", ".com")   = "www.domain"
4855
     * StringUtils.removeEnd("www.domain.com", "domain") = "www.domain.com"
4856
     * StringUtils.removeEnd("abc", "")    = "abc"
4857
     * </pre>
4858
     *
4859
     * @param str  the source String to search, may be null
4860
     * @param remove  the String to search for and remove, may be null
4861
     * @return the substring with the string removed if found,
4862
     *  {@code null} if null String input
4863
     * @since 2.1
4864
     */
4865
    public static String removeEnd(final String str, final String remove) {
4866 2 1. removeEnd : negated conditional → KILLED
2. removeEnd : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
4867 1 1. removeEnd : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4868
        }
4869 1 1. removeEnd : negated conditional → KILLED
        if (str.endsWith(remove)) {
4870 2 1. removeEnd : Replaced integer subtraction with addition → KILLED
2. removeEnd : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(0, str.length() - remove.length());
4871
        }
4872 1 1. removeEnd : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
4873
    }
4874
4875
    /**
4876
     * <p>Case insensitive removal of a substring if it is at the end of a source string,
4877
     * otherwise returns the source string.</p>
4878
     *
4879
     * <p>A {@code null} source string will return {@code null}.
4880
     * An empty ("") source string will return the empty string.
4881
     * A {@code null} search string will return the source string.</p>
4882
     *
4883
     * <pre>
4884
     * StringUtils.removeEndIgnoreCase(null, *)      = null
4885
     * StringUtils.removeEndIgnoreCase("", *)        = ""
4886
     * StringUtils.removeEndIgnoreCase(*, null)      = *
4887
     * StringUtils.removeEndIgnoreCase("www.domain.com", ".com.")  = "www.domain.com"
4888
     * StringUtils.removeEndIgnoreCase("www.domain.com", ".com")   = "www.domain"
4889
     * StringUtils.removeEndIgnoreCase("www.domain.com", "domain") = "www.domain.com"
4890
     * StringUtils.removeEndIgnoreCase("abc", "")    = "abc"
4891
     * StringUtils.removeEndIgnoreCase("www.domain.com", ".COM") = "www.domain")
4892
     * StringUtils.removeEndIgnoreCase("www.domain.COM", ".com") = "www.domain")
4893
     * </pre>
4894
     *
4895
     * @param str  the source String to search, may be null
4896
     * @param remove  the String to search for (case insensitive) and remove, may be null
4897
     * @return the substring with the string removed if found,
4898
     *  {@code null} if null String input
4899
     * @since 2.4
4900
     */
4901
    public static String removeEndIgnoreCase(final String str, final String remove) {
4902 2 1. removeEndIgnoreCase : negated conditional → KILLED
2. removeEndIgnoreCase : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
4903 1 1. removeEndIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4904
        }
4905 1 1. removeEndIgnoreCase : negated conditional → KILLED
        if (endsWithIgnoreCase(str, remove)) {
4906 2 1. removeEndIgnoreCase : Replaced integer subtraction with addition → KILLED
2. removeEndIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(0, str.length() - remove.length());
4907
        }
4908 1 1. removeEndIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
4909
    }
4910
4911
    /**
4912
     * <p>Removes all occurrences of a substring from within the source string.</p>
4913
     *
4914
     * <p>A {@code null} source string will return {@code null}.
4915
     * An empty ("") source string will return the empty string.
4916
     * A {@code null} remove string will return the source string.
4917
     * An empty ("") remove string will return the source string.</p>
4918
     *
4919
     * <pre>
4920
     * StringUtils.remove(null, *)        = null
4921
     * StringUtils.remove("", *)          = ""
4922
     * StringUtils.remove(*, null)        = *
4923
     * StringUtils.remove(*, "")          = *
4924
     * StringUtils.remove("queued", "ue") = "qd"
4925
     * StringUtils.remove("queued", "zz") = "queued"
4926
     * </pre>
4927
     *
4928
     * @param str  the source String to search, may be null
4929
     * @param remove  the String to search for and remove, may be null
4930
     * @return the substring with the string removed if found,
4931
     *  {@code null} if null String input
4932
     * @since 2.1
4933
     */
4934
    public static String remove(final String str, final String remove) {
4935 2 1. remove : negated conditional → KILLED
2. remove : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
4936 1 1. remove : mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4937
        }
4938 1 1. remove : mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replace(str, remove, EMPTY, -1);
4939
    }
4940
4941
    /**
4942
     * <p>
4943
     * Case insensitive removal of all occurrences of a substring from within
4944
     * the source string.
4945
     * </p>
4946
     *
4947
     * <p>
4948
     * A {@code null} source string will return {@code null}. An empty ("")
4949
     * source string will return the empty string. A {@code null} remove string
4950
     * will return the source string. An empty ("") remove string will return
4951
     * the source string.
4952
     * </p>
4953
     *
4954
     * <pre>
4955
     * StringUtils.removeIgnoreCase(null, *)        = null
4956
     * StringUtils.removeIgnoreCase("", *)          = ""
4957
     * StringUtils.removeIgnoreCase(*, null)        = *
4958
     * StringUtils.removeIgnoreCase(*, "")          = *
4959
     * StringUtils.removeIgnoreCase("queued", "ue") = "qd"
4960
     * StringUtils.removeIgnoreCase("queued", "zz") = "queued"
4961
     * StringUtils.removeIgnoreCase("quEUed", "UE") = "qd"
4962
     * StringUtils.removeIgnoreCase("queued", "zZ") = "queued"
4963
     * </pre>
4964
     *
4965
     * @param str
4966
     *            the source String to search, may be null
4967
     * @param remove
4968
     *            the String to search for (case insensitive) and remove, may be
4969
     *            null
4970
     * @return the substring with the string removed if found, {@code null} if
4971
     *         null String input
4972
     * @since 3.5
4973
     */
4974
    public static String removeIgnoreCase(final String str, final String remove) {
4975 2 1. removeIgnoreCase : negated conditional → KILLED
2. removeIgnoreCase : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
4976 1 1. removeIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4977
        }
4978 1 1. removeIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceIgnoreCase(str, remove, EMPTY, -1);
4979
    }
4980
4981
    /**
4982
     * <p>Removes all occurrences of a character from within the source string.</p>
4983
     *
4984
     * <p>A {@code null} source string will return {@code null}.
4985
     * An empty ("") source string will return the empty string.</p>
4986
     *
4987
     * <pre>
4988
     * StringUtils.remove(null, *)       = null
4989
     * StringUtils.remove("", *)         = ""
4990
     * StringUtils.remove("queued", 'u') = "qeed"
4991
     * StringUtils.remove("queued", 'z') = "queued"
4992
     * </pre>
4993
     *
4994
     * @param str  the source String to search, may be null
4995
     * @param remove  the char to search for and remove, may be null
4996
     * @return the substring with the char removed if found,
4997
     *  {@code null} if null String input
4998
     * @since 2.1
4999
     */
5000
    public static String remove(final String str, final char remove) {
5001 2 1. remove : negated conditional → KILLED
2. remove : negated conditional → KILLED
        if (isEmpty(str) || str.indexOf(remove) == INDEX_NOT_FOUND) {
5002 1 1. remove : mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
5003
        }
5004
        final char[] chars = str.toCharArray();
5005
        int pos = 0;
5006 3 1. remove : changed conditional boundary → KILLED
2. remove : Changed increment from 1 to -1 → KILLED
3. remove : negated conditional → KILLED
        for (int i = 0; i < chars.length; i++) {
5007 1 1. remove : negated conditional → KILLED
            if (chars[i] != remove) {
5008 1 1. remove : Changed increment from 1 to -1 → KILLED
                chars[pos++] = chars[i];
5009
            }
5010
        }
5011 1 1. remove : mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(chars, 0, pos);
5012
    }
5013
5014
    /**
5015
     * <p>Removes each substring of the text String that matches the given regular expression.</p>
5016
     *
5017
     * This method is a {@code null} safe equivalent to:
5018
     * <ul>
5019
     *  <li>{@code text.replaceAll(regex, StringUtils.EMPTY)}</li>
5020
     *  <li>{@code Pattern.compile(regex).matcher(text).replaceAll(StringUtils.EMPTY)}</li>
5021
     * </ul>
5022
     *
5023
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5024
     *
5025
     * <p>Unlike in the {@link #removePattern(String, String)} method, the {@link Pattern#DOTALL} option
5026
     * is NOT automatically added.
5027
     * To use the DOTALL option prepend <code>"(?s)"</code> to the regex.
5028
     * DOTALL is also know as single-line mode in Perl.</p>
5029
     *
5030
     * <pre>
5031
     * StringUtils.removeAll(null, *)      = null
5032
     * StringUtils.removeAll("any", null)  = "any"
5033
     * StringUtils.removeAll("any", "")    = "any"
5034
     * StringUtils.removeAll("any", ".*")  = ""
5035
     * StringUtils.removeAll("any", ".+")  = ""
5036
     * StringUtils.removeAll("abc", ".?")  = ""
5037
     * StringUtils.removeAll("A&lt;__&gt;\n&lt;__&gt;B", "&lt;.*&gt;")      = "A\nB"
5038
     * StringUtils.removeAll("A&lt;__&gt;\n&lt;__&gt;B", "(?s)&lt;.*&gt;")  = "AB"
5039
     * StringUtils.removeAll("ABCabc123abc", "[a-z]")     = "ABC123"
5040
     * </pre>
5041
     *
5042
     * @param text  text to remove from, may be null
5043
     * @param regex  the regular expression to which this string is to be matched
5044
     * @return  the text with any removes processed,
5045
     *              {@code null} if null String input
5046
     *
5047
     * @throws  java.util.regex.PatternSyntaxException
5048
     *              if the regular expression's syntax is invalid
5049
     *
5050
     * @see #replaceAll(String, String, String)
5051
     * @see #removePattern(String, String)
5052
     * @see String#replaceAll(String, String)
5053
     * @see java.util.regex.Pattern
5054
     * @see java.util.regex.Pattern#DOTALL
5055
     * @since 3.5
5056
     */
5057
    public static String removeAll(final String text, final String regex) {
5058 1 1. removeAll : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeAll to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceAll(text, regex, StringUtils.EMPTY);
5059
    }
5060
5061
    /**
5062
     * <p>Removes the first substring of the text string that matches the given regular expression.</p>
5063
     *
5064
     * This method is a {@code null} safe equivalent to:
5065
     * <ul>
5066
     *  <li>{@code text.replaceFirst(regex, StringUtils.EMPTY)}</li>
5067
     *  <li>{@code Pattern.compile(regex).matcher(text).replaceFirst(StringUtils.EMPTY)}</li>
5068
     * </ul>
5069
     *
5070
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5071
     *
5072
     * <p>The {@link Pattern#DOTALL} option is NOT automatically added.
5073
     * To use the DOTALL option prepend <code>"(?s)"</code> to the regex.
5074
     * DOTALL is also know as single-line mode in Perl.</p>
5075
     *
5076
     * <pre>
5077
     * StringUtils.removeFirst(null, *)      = null
5078
     * StringUtils.removeFirst("any", null)  = "any"
5079
     * StringUtils.removeFirst("any", "")    = "any"
5080
     * StringUtils.removeFirst("any", ".*")  = ""
5081
     * StringUtils.removeFirst("any", ".+")  = ""
5082
     * StringUtils.removeFirst("abc", ".?")  = "bc"
5083
     * StringUtils.removeFirst("A&lt;__&gt;\n&lt;__&gt;B", "&lt;.*&gt;")      = "A\n&lt;__&gt;B"
5084
     * StringUtils.removeFirst("A&lt;__&gt;\n&lt;__&gt;B", "(?s)&lt;.*&gt;")  = "AB"
5085
     * StringUtils.removeFirst("ABCabc123", "[a-z]")          = "ABCbc123"
5086
     * StringUtils.removeFirst("ABCabc123abc", "[a-z]+")      = "ABC123abc"
5087
     * </pre>
5088
     *
5089
     * @param text  text to remove from, may be null
5090
     * @param regex  the regular expression to which this string is to be matched
5091
     * @return  the text with the first replacement processed,
5092
     *              {@code null} if null String input
5093
     *
5094
     * @throws  java.util.regex.PatternSyntaxException
5095
     *              if the regular expression's syntax is invalid
5096
     *
5097
     * @see #replaceFirst(String, String, String)
5098
     * @see String#replaceFirst(String, String)
5099
     * @see java.util.regex.Pattern
5100
     * @see java.util.regex.Pattern#DOTALL
5101
     * @since 3.5
5102
     */
5103
    public static String removeFirst(final String text, final String regex) {
5104 1 1. removeFirst : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeFirst to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceFirst(text, regex, StringUtils.EMPTY);
5105
    }
5106
5107
    // Replacing
5108
    //-----------------------------------------------------------------------
5109
    /**
5110
     * <p>Replaces a String with another String inside a larger String, once.</p>
5111
     *
5112
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5113
     *
5114
     * <pre>
5115
     * StringUtils.replaceOnce(null, *, *)        = null
5116
     * StringUtils.replaceOnce("", *, *)          = ""
5117
     * StringUtils.replaceOnce("any", null, *)    = "any"
5118
     * StringUtils.replaceOnce("any", *, null)    = "any"
5119
     * StringUtils.replaceOnce("any", "", *)      = "any"
5120
     * StringUtils.replaceOnce("aba", "a", null)  = "aba"
5121
     * StringUtils.replaceOnce("aba", "a", "")    = "ba"
5122
     * StringUtils.replaceOnce("aba", "a", "z")   = "zba"
5123
     * </pre>
5124
     *
5125
     * @see #replace(String text, String searchString, String replacement, int max)
5126
     * @param text  text to search and replace in, may be null
5127
     * @param searchString  the String to search for, may be null
5128
     * @param replacement  the String to replace with, may be null
5129
     * @return the text with any replacements processed,
5130
     *  {@code null} if null String input
5131
     */
5132
    public static String replaceOnce(final String text, final String searchString, final String replacement) {
5133 1 1. replaceOnce : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceOnce to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replace(text, searchString, replacement, 1);
5134
    }
5135
5136
    /**
5137
     * <p>Case insensitively replaces a String with another String inside a larger String, once.</p>
5138
     *
5139
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5140
     *
5141
     * <pre>
5142
     * StringUtils.replaceOnceIgnoreCase(null, *, *)        = null
5143
     * StringUtils.replaceOnceIgnoreCase("", *, *)          = ""
5144
     * StringUtils.replaceOnceIgnoreCase("any", null, *)    = "any"
5145
     * StringUtils.replaceOnceIgnoreCase("any", *, null)    = "any"
5146
     * StringUtils.replaceOnceIgnoreCase("any", "", *)      = "any"
5147
     * StringUtils.replaceOnceIgnoreCase("aba", "a", null)  = "aba"
5148
     * StringUtils.replaceOnceIgnoreCase("aba", "a", "")    = "ba"
5149
     * StringUtils.replaceOnceIgnoreCase("aba", "a", "z")   = "zba"
5150
     * StringUtils.replaceOnceIgnoreCase("FoOFoofoo", "foo", "") = "Foofoo"
5151
     * </pre>
5152
     *
5153
     * @see #replaceIgnoreCase(String text, String searchString, String replacement, int max)
5154
     * @param text  text to search and replace in, may be null
5155
     * @param searchString  the String to search for (case insensitive), may be null
5156
     * @param replacement  the String to replace with, may be null
5157
     * @return the text with any replacements processed,
5158
     *  {@code null} if null String input
5159
     * @since 3.5
5160
     */
5161
    public static String replaceOnceIgnoreCase(final String text, final String searchString, final String replacement) {
5162 1 1. replaceOnceIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceOnceIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceIgnoreCase(text, searchString, replacement, 1);
5163
    }
5164
5165
    /**
5166
     * <p>Replaces each substring of the source String that matches the given regular expression with the given
5167
     * replacement using the {@link Pattern#DOTALL} option. DOTALL is also know as single-line mode in Perl.</p>
5168
     *
5169
     * This call is a {@code null} safe equivalent to:
5170
     * <ul>
5171
     * <li>{@code source.replaceAll(&quot;(?s)&quot; + regex, replacement)}</li>
5172
     * <li>{@code Pattern.compile(regex, Pattern.DOTALL).matcher(source).replaceAll(replacement)}</li>
5173
     * </ul>
5174
     *
5175
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5176
     *
5177
     * <pre>
5178
     * StringUtils.replacePattern(null, *, *)       = null
5179
     * StringUtils.replacePattern("any", null, *)   = "any"
5180
     * StringUtils.replacePattern("any", *, null)   = "any"
5181
     * StringUtils.replacePattern("", "", "zzz")    = "zzz"
5182
     * StringUtils.replacePattern("", ".*", "zzz")  = "zzz"
5183
     * StringUtils.replacePattern("", ".+", "zzz")  = ""
5184
     * StringUtils.replacePattern("&lt;__&gt;\n&lt;__&gt;", "&lt;.*&gt;", "z")       = "z"
5185
     * StringUtils.replacePattern("ABCabc123", "[a-z]", "_")       = "ABC___123"
5186
     * StringUtils.replacePattern("ABCabc123", "[^A-Z0-9]+", "_")  = "ABC_123"
5187
     * StringUtils.replacePattern("ABCabc123", "[^A-Z0-9]+", "")   = "ABC123"
5188
     * StringUtils.replacePattern("Lorem ipsum  dolor   sit", "( +)([a-z]+)", "_$2")  = "Lorem_ipsum_dolor_sit"
5189
     * </pre>
5190
     *
5191
     * @param source
5192
     *            the source string
5193
     * @param regex
5194
     *            the regular expression to which this string is to be matched
5195
     * @param replacement
5196
     *            the string to be substituted for each match
5197
     * @return The resulting {@code String}
5198
     * @see #replaceAll(String, String, String)
5199
     * @see String#replaceAll(String, String)
5200
     * @see Pattern#DOTALL
5201
     * @since 3.2
5202
     * @since 3.5 Changed {@code null} reference passed to this method is a no-op.
5203
     */
5204
    public static String replacePattern(final String source, final String regex, final String replacement) {
5205 3 1. replacePattern : negated conditional → KILLED
2. replacePattern : negated conditional → KILLED
3. replacePattern : negated conditional → KILLED
        if (source == null || regex == null || replacement == null) {
5206 1 1. replacePattern : mutated return of Object value for org/apache/commons/lang3/StringUtils::replacePattern to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return source;
5207
        }
5208 1 1. replacePattern : mutated return of Object value for org/apache/commons/lang3/StringUtils::replacePattern to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return Pattern.compile(regex, Pattern.DOTALL).matcher(source).replaceAll(replacement);
5209
    }
5210
5211
    /**
5212
     * <p>Removes each substring of the source String that matches the given regular expression using the DOTALL option.
5213
     * </p>
5214
     *
5215
     * This call is a {@code null} safe equivalent to:
5216
     * <ul>
5217
     * <li>{@code source.replaceAll(&quot;(?s)&quot; + regex, StringUtils.EMPTY)}</li>
5218
     * <li>{@code Pattern.compile(regex, Pattern.DOTALL).matcher(source).replaceAll(StringUtils.EMPTY)}</li>
5219
     * </ul>
5220
     *
5221
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5222
     *
5223
     * <pre>
5224
     * StringUtils.removePattern(null, *)       = null
5225
     * StringUtils.removePattern("any", null)   = "any"
5226
     * StringUtils.removePattern("A&lt;__&gt;\n&lt;__&gt;B", "&lt;.*&gt;")  = "AB"
5227
     * StringUtils.removePattern("ABCabc123", "[a-z]")    = "ABC123"
5228
     * </pre>
5229
     *
5230
     * @param source
5231
     *            the source string
5232
     * @param regex
5233
     *            the regular expression to which this string is to be matched
5234
     * @return The resulting {@code String}
5235
     * @see #replacePattern(String, String, String)
5236
     * @see String#replaceAll(String, String)
5237
     * @see Pattern#DOTALL
5238
     * @since 3.2
5239
     * @since 3.5 Changed {@code null} reference passed to this method is a no-op.
5240
     */
5241
    public static String removePattern(final String source, final String regex) {
5242 1 1. removePattern : mutated return of Object value for org/apache/commons/lang3/StringUtils::removePattern to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replacePattern(source, regex, StringUtils.EMPTY);
5243
    }
5244
5245
    /**
5246
     * <p>Replaces each substring of the text String that matches the given regular expression
5247
     * with the given replacement.</p>
5248
     *
5249
     * This method is a {@code null} safe equivalent to:
5250
     * <ul>
5251
     *  <li>{@code text.replaceAll(regex, replacement)}</li>
5252
     *  <li>{@code Pattern.compile(regex).matcher(text).replaceAll(replacement)}</li>
5253
     * </ul>
5254
     *
5255
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5256
     *
5257
     * <p>Unlike in the {@link #replacePattern(String, String, String)} method, the {@link Pattern#DOTALL} option
5258
     * is NOT automatically added.
5259
     * To use the DOTALL option prepend <code>"(?s)"</code> to the regex.
5260
     * DOTALL is also know as single-line mode in Perl.</p>
5261
     *
5262
     * <pre>
5263
     * StringUtils.replaceAll(null, *, *)       = null
5264
     * StringUtils.replaceAll("any", null, *)   = "any"
5265
     * StringUtils.replaceAll("any", *, null)   = "any"
5266
     * StringUtils.replaceAll("", "", "zzz")    = "zzz"
5267
     * StringUtils.replaceAll("", ".*", "zzz")  = "zzz"
5268
     * StringUtils.replaceAll("", ".+", "zzz")  = ""
5269
     * StringUtils.replaceAll("abc", "", "ZZ")  = "ZZaZZbZZcZZ"
5270
     * StringUtils.replaceAll("&lt;__&gt;\n&lt;__&gt;", "&lt;.*&gt;", "z")      = "z\nz"
5271
     * StringUtils.replaceAll("&lt;__&gt;\n&lt;__&gt;", "(?s)&lt;.*&gt;", "z")  = "z"
5272
     * StringUtils.replaceAll("ABCabc123", "[a-z]", "_")       = "ABC___123"
5273
     * StringUtils.replaceAll("ABCabc123", "[^A-Z0-9]+", "_")  = "ABC_123"
5274
     * StringUtils.replaceAll("ABCabc123", "[^A-Z0-9]+", "")   = "ABC123"
5275
     * StringUtils.replaceAll("Lorem ipsum  dolor   sit", "( +)([a-z]+)", "_$2")  = "Lorem_ipsum_dolor_sit"
5276
     * </pre>
5277
     *
5278
     * @param text  text to search and replace in, may be null
5279
     * @param regex  the regular expression to which this string is to be matched
5280
     * @param replacement  the string to be substituted for each match
5281
     * @return  the text with any replacements processed,
5282
     *              {@code null} if null String input
5283
     *
5284
     * @throws  java.util.regex.PatternSyntaxException
5285
     *              if the regular expression's syntax is invalid
5286
     *
5287
     * @see #replacePattern(String, String, String)
5288
     * @see String#replaceAll(String, String)
5289
     * @see java.util.regex.Pattern
5290
     * @see java.util.regex.Pattern#DOTALL
5291
     * @since 3.5
5292
     */
5293
    public static String replaceAll(final String text, final String regex, final String replacement) {
5294 3 1. replaceAll : negated conditional → KILLED
2. replaceAll : negated conditional → KILLED
3. replaceAll : negated conditional → KILLED
        if (text == null || regex == null|| replacement == null ) {
5295 1 1. replaceAll : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceAll to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return text;
5296
        }
5297 1 1. replaceAll : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceAll to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return text.replaceAll(regex, replacement);
5298
    }
5299
5300
    /**
5301
     * <p>Replaces the first substring of the text string that matches the given regular expression
5302
     * with the given replacement.</p>
5303
     *
5304
     * This method is a {@code null} safe equivalent to:
5305
     * <ul>
5306
     *  <li>{@code text.replaceFirst(regex, replacement)}</li>
5307
     *  <li>{@code Pattern.compile(regex).matcher(text).replaceFirst(replacement)}</li>
5308
     * </ul>
5309
     *
5310
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5311
     *
5312
     * <p>The {@link Pattern#DOTALL} option is NOT automatically added.
5313
     * To use the DOTALL option prepend <code>"(?s)"</code> to the regex.
5314
     * DOTALL is also know as single-line mode in Perl.</p>
5315
     *
5316
     * <pre>
5317
     * StringUtils.replaceFirst(null, *, *)       = null
5318
     * StringUtils.replaceFirst("any", null, *)   = "any"
5319
     * StringUtils.replaceFirst("any", *, null)   = "any"
5320
     * StringUtils.replaceFirst("", "", "zzz")    = "zzz"
5321
     * StringUtils.replaceFirst("", ".*", "zzz")  = "zzz"
5322
     * StringUtils.replaceFirst("", ".+", "zzz")  = ""
5323
     * StringUtils.replaceFirst("abc", "", "ZZ")  = "ZZabc"
5324
     * StringUtils.replaceFirst("&lt;__&gt;\n&lt;__&gt;", "&lt;.*&gt;", "z")      = "z\n&lt;__&gt;"
5325
     * StringUtils.replaceFirst("&lt;__&gt;\n&lt;__&gt;", "(?s)&lt;.*&gt;", "z")  = "z"
5326
     * StringUtils.replaceFirst("ABCabc123", "[a-z]", "_")          = "ABC_bc123"
5327
     * StringUtils.replaceFirst("ABCabc123abc", "[^A-Z0-9]+", "_")  = "ABC_123abc"
5328
     * StringUtils.replaceFirst("ABCabc123abc", "[^A-Z0-9]+", "")   = "ABC123abc"
5329
     * StringUtils.replaceFirst("Lorem ipsum  dolor   sit", "( +)([a-z]+)", "_$2")  = "Lorem_ipsum  dolor   sit"
5330
     * </pre>
5331
     *
5332
     * @param text  text to search and replace in, may be null
5333
     * @param regex  the regular expression to which this string is to be matched
5334
     * @param replacement  the string to be substituted for the first match
5335
     * @return  the text with the first replacement processed,
5336
     *              {@code null} if null String input
5337
     *
5338
     * @throws  java.util.regex.PatternSyntaxException
5339
     *              if the regular expression's syntax is invalid
5340
     *
5341
     * @see String#replaceFirst(String, String)
5342
     * @see java.util.regex.Pattern
5343
     * @see java.util.regex.Pattern#DOTALL
5344
     * @since 3.5
5345
     */
5346
    public static String replaceFirst(final String text, final String regex, final String replacement) {
5347 3 1. replaceFirst : negated conditional → KILLED
2. replaceFirst : negated conditional → KILLED
3. replaceFirst : negated conditional → KILLED
        if (text == null || regex == null|| replacement == null ) {
5348 1 1. replaceFirst : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceFirst to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return text;
5349
        }
5350 1 1. replaceFirst : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceFirst to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return text.replaceFirst(regex, replacement);
5351
    }
5352
5353
    /**
5354
     * <p>Replaces all occurrences of a String within another String.</p>
5355
     *
5356
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5357
     *
5358
     * <pre>
5359
     * StringUtils.replace(null, *, *)        = null
5360
     * StringUtils.replace("", *, *)          = ""
5361
     * StringUtils.replace("any", null, *)    = "any"
5362
     * StringUtils.replace("any", *, null)    = "any"
5363
     * StringUtils.replace("any", "", *)      = "any"
5364
     * StringUtils.replace("aba", "a", null)  = "aba"
5365
     * StringUtils.replace("aba", "a", "")    = "b"
5366
     * StringUtils.replace("aba", "a", "z")   = "zbz"
5367
     * </pre>
5368
     *
5369
     * @see #replace(String text, String searchString, String replacement, int max)
5370
     * @param text  text to search and replace in, may be null
5371
     * @param searchString  the String to search for, may be null
5372
     * @param replacement  the String to replace it with, may be null
5373
     * @return the text with any replacements processed,
5374
     *  {@code null} if null String input
5375
     */
5376
    public static String replace(final String text, final String searchString, final String replacement) {
5377 1 1. replace : mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replace(text, searchString, replacement, -1);
5378
    }
5379
5380
    /**
5381
    * <p>Case insensitively replaces all occurrences of a String within another String.</p>
5382
    *
5383
    * <p>A {@code null} reference passed to this method is a no-op.</p>
5384
    *
5385
    * <pre>
5386
    * StringUtils.replaceIgnoreCase(null, *, *)        = null
5387
    * StringUtils.replaceIgnoreCase("", *, *)          = ""
5388
    * StringUtils.replaceIgnoreCase("any", null, *)    = "any"
5389
    * StringUtils.replaceIgnoreCase("any", *, null)    = "any"
5390
    * StringUtils.replaceIgnoreCase("any", "", *)      = "any"
5391
    * StringUtils.replaceIgnoreCase("aba", "a", null)  = "aba"
5392
    * StringUtils.replaceIgnoreCase("abA", "A", "")    = "b"
5393
    * StringUtils.replaceIgnoreCase("aba", "A", "z")   = "zbz"
5394
    * </pre>
5395
    *
5396
    * @see #replaceIgnoreCase(String text, String searchString, String replacement, int max)
5397
    * @param text  text to search and replace in, may be null
5398
    * @param searchString  the String to search for (case insensitive), may be null
5399
    * @param replacement  the String to replace it with, may be null
5400
    * @return the text with any replacements processed,
5401
    *  {@code null} if null String input
5402
    * @since 3.5
5403
    */
5404
   public static String replaceIgnoreCase(final String text, final String searchString, final String replacement) {
5405 1 1. replaceIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
       return replaceIgnoreCase(text, searchString, replacement, -1);
5406
   }
5407
5408
    /**
5409
     * <p>Replaces a String with another String inside a larger String,
5410
     * for the first {@code max} values of the search String.</p>
5411
     *
5412
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5413
     *
5414
     * <pre>
5415
     * StringUtils.replace(null, *, *, *)         = null
5416
     * StringUtils.replace("", *, *, *)           = ""
5417
     * StringUtils.replace("any", null, *, *)     = "any"
5418
     * StringUtils.replace("any", *, null, *)     = "any"
5419
     * StringUtils.replace("any", "", *, *)       = "any"
5420
     * StringUtils.replace("any", *, *, 0)        = "any"
5421
     * StringUtils.replace("abaa", "a", null, -1) = "abaa"
5422
     * StringUtils.replace("abaa", "a", "", -1)   = "b"
5423
     * StringUtils.replace("abaa", "a", "z", 0)   = "abaa"
5424
     * StringUtils.replace("abaa", "a", "z", 1)   = "zbaa"
5425
     * StringUtils.replace("abaa", "a", "z", 2)   = "zbza"
5426
     * StringUtils.replace("abaa", "a", "z", -1)  = "zbzz"
5427
     * </pre>
5428
     *
5429
     * @param text  text to search and replace in, may be null
5430
     * @param searchString  the String to search for, may be null
5431
     * @param replacement  the String to replace it with, may be null
5432
     * @param max  maximum number of values to replace, or {@code -1} if no maximum
5433
     * @return the text with any replacements processed,
5434
     *  {@code null} if null String input
5435
     */
5436
    public static String replace(final String text, final String searchString, final String replacement, final int max) {
5437 1 1. replace : mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replace(text, searchString, replacement, max, false);
5438
    }
5439
5440
    /**
5441
     * <p>Replaces a String with another String inside a larger String,
5442
     * for the first {@code max} values of the search String, 
5443
     * case sensitively/insensisitively based on {@code ignoreCase} value.</p>
5444
     *
5445
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5446
     *
5447
     * <pre>
5448
     * StringUtils.replace(null, *, *, *, false)         = null
5449
     * StringUtils.replace("", *, *, *, false)           = ""
5450
     * StringUtils.replace("any", null, *, *, false)     = "any"
5451
     * StringUtils.replace("any", *, null, *, false)     = "any"
5452
     * StringUtils.replace("any", "", *, *, false)       = "any"
5453
     * StringUtils.replace("any", *, *, 0, false)        = "any"
5454
     * StringUtils.replace("abaa", "a", null, -1, false) = "abaa"
5455
     * StringUtils.replace("abaa", "a", "", -1, false)   = "b"
5456
     * StringUtils.replace("abaa", "a", "z", 0, false)   = "abaa"
5457
     * StringUtils.replace("abaa", "A", "z", 1, false)   = "abaa"
5458
     * StringUtils.replace("abaa", "A", "z", 1, true)   = "zbaa"
5459
     * StringUtils.replace("abAa", "a", "z", 2, true)   = "zbza"
5460
     * StringUtils.replace("abAa", "a", "z", -1, true)  = "zbzz"
5461
     * </pre>
5462
     *
5463
     * @param text  text to search and replace in, may be null
5464
     * @param searchString  the String to search for (case insensitive), may be null
5465
     * @param replacement  the String to replace it with, may be null
5466
     * @param max  maximum number of values to replace, or {@code -1} if no maximum
5467
     * @param ignoreCase if true replace is case insensitive, otherwise case sensitive
5468
     * @return the text with any replacements processed,
5469
     *  {@code null} if null String input
5470
     */
5471
     private static String replace(final String text, String searchString, final String replacement, int max, final boolean ignoreCase) {
5472 4 1. replace : negated conditional → KILLED
2. replace : negated conditional → KILLED
3. replace : negated conditional → KILLED
4. replace : negated conditional → KILLED
         if (isEmpty(text) || isEmpty(searchString) || replacement == null || max == 0) {
5473 1 1. replace : mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED
             return text;
5474
         }
5475
         String searchText = text;
5476 1 1. replace : negated conditional → KILLED
         if (ignoreCase) {
5477
             searchText = text.toLowerCase();
5478
             searchString = searchString.toLowerCase();
5479
         }
5480
         int start = 0;
5481
         int end = searchText.indexOf(searchString, start);
5482 1 1. replace : negated conditional → KILLED
         if (end == INDEX_NOT_FOUND) {
5483 1 1. replace : mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED
             return text;
5484
         }
5485
         final int replLength = searchString.length();
5486 1 1. replace : Replaced integer subtraction with addition → SURVIVED
         int increase = replacement.length() - replLength;
5487 2 1. replace : changed conditional boundary → SURVIVED
2. replace : negated conditional → KILLED
         increase = increase < 0 ? 0 : increase;
5488 5 1. replace : changed conditional boundary → SURVIVED
2. replace : changed conditional boundary → SURVIVED
3. replace : Replaced integer multiplication with division → SURVIVED
4. replace : negated conditional → SURVIVED
5. replace : negated conditional → SURVIVED
         increase *= max < 0 ? 16 : max > 64 ? 64 : max;
5489 1 1. replace : Replaced integer addition with subtraction → KILLED
         final StringBuilder buf = new StringBuilder(text.length() + increase);
5490 1 1. replace : negated conditional → KILLED
         while (end != INDEX_NOT_FOUND) {
5491
             buf.append(text.substring(start, end)).append(replacement);
5492 1 1. replace : Replaced integer addition with subtraction → KILLED
             start = end + replLength;
5493 2 1. replace : Changed increment from -1 to 1 → KILLED
2. replace : negated conditional → KILLED
             if (--max == 0) {
5494
                 break;
5495
             }
5496
             end = searchText.indexOf(searchString, start);
5497
         }
5498
         buf.append(text.substring(start));
5499 1 1. replace : mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED
         return buf.toString();
5500
     }
5501
5502
    /**
5503
     * <p>Case insensitively replaces a String with another String inside a larger String,
5504
     * for the first {@code max} values of the search String.</p>
5505
     *
5506
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5507
     *
5508
     * <pre>
5509
     * StringUtils.replaceIgnoreCase(null, *, *, *)         = null
5510
     * StringUtils.replaceIgnoreCase("", *, *, *)           = ""
5511
     * StringUtils.replaceIgnoreCase("any", null, *, *)     = "any"
5512
     * StringUtils.replaceIgnoreCase("any", *, null, *)     = "any"
5513
     * StringUtils.replaceIgnoreCase("any", "", *, *)       = "any"
5514
     * StringUtils.replaceIgnoreCase("any", *, *, 0)        = "any"
5515
     * StringUtils.replaceIgnoreCase("abaa", "a", null, -1) = "abaa"
5516
     * StringUtils.replaceIgnoreCase("abaa", "a", "", -1)   = "b"
5517
     * StringUtils.replaceIgnoreCase("abaa", "a", "z", 0)   = "abaa"
5518
     * StringUtils.replaceIgnoreCase("abaa", "A", "z", 1)   = "zbaa"
5519
     * StringUtils.replaceIgnoreCase("abAa", "a", "z", 2)   = "zbza"
5520
     * StringUtils.replaceIgnoreCase("abAa", "a", "z", -1)  = "zbzz"
5521
     * </pre>
5522
     *
5523
     * @param text  text to search and replace in, may be null
5524
     * @param searchString  the String to search for (case insensitive), may be null
5525
     * @param replacement  the String to replace it with, may be null
5526
     * @param max  maximum number of values to replace, or {@code -1} if no maximum
5527
     * @return the text with any replacements processed,
5528
     *  {@code null} if null String input
5529
     * @since 3.5
5530
     */
5531
    public static String replaceIgnoreCase(final String text, final String searchString, final String replacement, final int max) {
5532 1 1. replaceIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replace(text, searchString, replacement, max, true);
5533
    }
5534
5535
    /**
5536
     * <p>
5537
     * Replaces all occurrences of Strings within another String.
5538
     * </p>
5539
     *
5540
     * <p>
5541
     * A {@code null} reference passed to this method is a no-op, or if
5542
     * any "search string" or "string to replace" is null, that replace will be
5543
     * ignored. This will not repeat. For repeating replaces, call the
5544
     * overloaded method.
5545
     * </p>
5546
     *
5547
     * <pre>
5548
     *  StringUtils.replaceEach(null, *, *)        = null
5549
     *  StringUtils.replaceEach("", *, *)          = ""
5550
     *  StringUtils.replaceEach("aba", null, null) = "aba"
5551
     *  StringUtils.replaceEach("aba", new String[0], null) = "aba"
5552
     *  StringUtils.replaceEach("aba", null, new String[0]) = "aba"
5553
     *  StringUtils.replaceEach("aba", new String[]{"a"}, null)  = "aba"
5554
     *  StringUtils.replaceEach("aba", new String[]{"a"}, new String[]{""})  = "b"
5555
     *  StringUtils.replaceEach("aba", new String[]{null}, new String[]{"a"})  = "aba"
5556
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"w", "t"})  = "wcte"
5557
     *  (example of how it does not repeat)
5558
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"})  = "dcte"
5559
     * </pre>
5560
     *
5561
     * @param text
5562
     *            text to search and replace in, no-op if null
5563
     * @param searchList
5564
     *            the Strings to search for, no-op if null
5565
     * @param replacementList
5566
     *            the Strings to replace them with, no-op if null
5567
     * @return the text with any replacements processed, {@code null} if
5568
     *         null String input
5569
     * @throws IllegalArgumentException
5570
     *             if the lengths of the arrays are not the same (null is ok,
5571
     *             and/or size 0)
5572
     * @since 2.4
5573
     */
5574
    public static String replaceEach(final String text, final String[] searchList, final String[] replacementList) {
5575 1 1. replaceEach : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceEach(text, searchList, replacementList, false, 0);
5576
    }
5577
5578
    /**
5579
     * <p>
5580
     * Replaces all occurrences of Strings within another String.
5581
     * </p>
5582
     *
5583
     * <p>
5584
     * A {@code null} reference passed to this method is a no-op, or if
5585
     * any "search string" or "string to replace" is null, that replace will be
5586
     * ignored.
5587
     * </p>
5588
     *
5589
     * <pre>
5590
     *  StringUtils.replaceEachRepeatedly(null, *, *) = null
5591
     *  StringUtils.replaceEachRepeatedly("", *, *) = ""
5592
     *  StringUtils.replaceEachRepeatedly("aba", null, null) = "aba"
5593
     *  StringUtils.replaceEachRepeatedly("aba", new String[0], null) = "aba"
5594
     *  StringUtils.replaceEachRepeatedly("aba", null, new String[0]) = "aba"
5595
     *  StringUtils.replaceEachRepeatedly("aba", new String[]{"a"}, null) = "aba"
5596
     *  StringUtils.replaceEachRepeatedly("aba", new String[]{"a"}, new String[]{""}) = "b"
5597
     *  StringUtils.replaceEachRepeatedly("aba", new String[]{null}, new String[]{"a"}) = "aba"
5598
     *  StringUtils.replaceEachRepeatedly("abcde", new String[]{"ab", "d"}, new String[]{"w", "t"}) = "wcte"
5599
     *  (example of how it repeats)
5600
     *  StringUtils.replaceEachRepeatedly("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"}) = "tcte"
5601
     *  StringUtils.replaceEachRepeatedly("abcde", new String[]{"ab", "d"}, new String[]{"d", "ab"}) = IllegalStateException
5602
     * </pre>
5603
     *
5604
     * @param text
5605
     *            text to search and replace in, no-op if null
5606
     * @param searchList
5607
     *            the Strings to search for, no-op if null
5608
     * @param replacementList
5609
     *            the Strings to replace them with, no-op if null
5610
     * @return the text with any replacements processed, {@code null} if
5611
     *         null String input
5612
     * @throws IllegalStateException
5613
     *             if the search is repeating and there is an endless loop due
5614
     *             to outputs of one being inputs to another
5615
     * @throws IllegalArgumentException
5616
     *             if the lengths of the arrays are not the same (null is ok,
5617
     *             and/or size 0)
5618
     * @since 2.4
5619
     */
5620
    public static String replaceEachRepeatedly(final String text, final String[] searchList, final String[] replacementList) {
5621
        // timeToLive should be 0 if not used or nothing to replace, else it's
5622
        // the length of the replace array
5623 1 1. replaceEachRepeatedly : negated conditional → KILLED
        final int timeToLive = searchList == null ? 0 : searchList.length;
5624 1 1. replaceEachRepeatedly : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEachRepeatedly to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceEach(text, searchList, replacementList, true, timeToLive);
5625
    }
5626
5627
    /**
5628
     * <p>
5629
     * Replace all occurrences of Strings within another String.
5630
     * This is a private recursive helper method for {@link #replaceEachRepeatedly(String, String[], String[])} and
5631
     * {@link #replaceEach(String, String[], String[])}
5632
     * </p>
5633
     *
5634
     * <p>
5635
     * A {@code null} reference passed to this method is a no-op, or if
5636
     * any "search string" or "string to replace" is null, that replace will be
5637
     * ignored.
5638
     * </p>
5639
     *
5640
     * <pre>
5641
     *  StringUtils.replaceEach(null, *, *, *, *) = null
5642
     *  StringUtils.replaceEach("", *, *, *, *) = ""
5643
     *  StringUtils.replaceEach("aba", null, null, *, *) = "aba"
5644
     *  StringUtils.replaceEach("aba", new String[0], null, *, *) = "aba"
5645
     *  StringUtils.replaceEach("aba", null, new String[0], *, *) = "aba"
5646
     *  StringUtils.replaceEach("aba", new String[]{"a"}, null, *, *) = "aba"
5647
     *  StringUtils.replaceEach("aba", new String[]{"a"}, new String[]{""}, *, >=0) = "b"
5648
     *  StringUtils.replaceEach("aba", new String[]{null}, new String[]{"a"}, *, >=0) = "aba"
5649
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"w", "t"}, *, >=0) = "wcte"
5650
     *  (example of how it repeats)
5651
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"}, false, >=0) = "dcte"
5652
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"}, true, >=2) = "tcte"
5653
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "ab"}, *, *) = IllegalStateException
5654
     * </pre>
5655
     *
5656
     * @param text
5657
     *            text to search and replace in, no-op if null
5658
     * @param searchList
5659
     *            the Strings to search for, no-op if null
5660
     * @param replacementList
5661
     *            the Strings to replace them with, no-op if null
5662
     * @param repeat if true, then replace repeatedly
5663
     *       until there are no more possible replacements or timeToLive < 0
5664
     * @param timeToLive
5665
     *            if less than 0 then there is a circular reference and endless
5666
     *            loop
5667
     * @return the text with any replacements processed, {@code null} if
5668
     *         null String input
5669
     * @throws IllegalStateException
5670
     *             if the search is repeating and there is an endless loop due
5671
     *             to outputs of one being inputs to another
5672
     * @throws IllegalArgumentException
5673
     *             if the lengths of the arrays are not the same (null is ok,
5674
     *             and/or size 0)
5675
     * @since 2.4
5676
     */
5677
    private static String replaceEach(
5678
            final String text, final String[] searchList, final String[] replacementList, final boolean repeat, final int timeToLive) {
5679
5680
        // mchyzer Performance note: This creates very few new objects (one major goal)
5681
        // let me know if there are performance requests, we can create a harness to measure
5682
5683 6 1. replaceEach : negated conditional → KILLED
2. replaceEach : negated conditional → KILLED
3. replaceEach : negated conditional → KILLED
4. replaceEach : negated conditional → KILLED
5. replaceEach : negated conditional → KILLED
6. replaceEach : negated conditional → KILLED
        if (text == null || text.isEmpty() || searchList == null ||
5684
                searchList.length == 0 || replacementList == null || replacementList.length == 0) {
5685 1 1. replaceEach : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return text;
5686
        }
5687
5688
        // if recursing, this shouldn't be less than 0
5689 2 1. replaceEach : changed conditional boundary → KILLED
2. replaceEach : negated conditional → KILLED
        if (timeToLive < 0) {
5690
            throw new IllegalStateException("Aborting to protect against StackOverflowError - " +
5691
                                            "output of one loop is the input of another");
5692
        }
5693
5694
        final int searchLength = searchList.length;
5695
        final int replacementLength = replacementList.length;
5696
5697
        // make sure lengths are ok, these need to be equal
5698 1 1. replaceEach : negated conditional → KILLED
        if (searchLength != replacementLength) {
5699
            throw new IllegalArgumentException("Search and Replace array lengths don't match: "
5700
                + searchLength
5701
                + " vs "
5702
                + replacementLength);
5703
        }
5704
5705
        // keep track of which still have matches
5706
        final boolean[] noMoreMatchesForReplIndex = new boolean[searchLength];
5707
5708
        // index on index that the match was found
5709
        int textIndex = -1;
5710
        int replaceIndex = -1;
5711
        int tempIndex = -1;
5712
5713
        // index of replace array that will replace the search string found
5714
        // NOTE: logic duplicated below START
5715 3 1. replaceEach : changed conditional boundary → KILLED
2. replaceEach : Changed increment from 1 to -1 → KILLED
3. replaceEach : negated conditional → KILLED
        for (int i = 0; i < searchLength; i++) {
5716 2 1. replaceEach : negated conditional → KILLED
2. replaceEach : negated conditional → KILLED
            if (noMoreMatchesForReplIndex[i] || searchList[i] == null ||
5717 2 1. replaceEach : negated conditional → KILLED
2. replaceEach : negated conditional → KILLED
                    searchList[i].isEmpty() || replacementList[i] == null) {
5718
                continue;
5719
            }
5720
            tempIndex = text.indexOf(searchList[i]);
5721
5722
            // see if we need to keep searching for this
5723 1 1. replaceEach : negated conditional → KILLED
            if (tempIndex == -1) {
5724
                noMoreMatchesForReplIndex[i] = true;
5725
            } else {
5726 3 1. replaceEach : changed conditional boundary → SURVIVED
2. replaceEach : negated conditional → KILLED
3. replaceEach : negated conditional → KILLED
                if (textIndex == -1 || tempIndex < textIndex) {
5727
                    textIndex = tempIndex;
5728
                    replaceIndex = i;
5729
                }
5730
            }
5731
        }
5732
        // NOTE: logic mostly below END
5733
5734
        // no search strings found, we are done
5735 1 1. replaceEach : negated conditional → KILLED
        if (textIndex == -1) {
5736 1 1. replaceEach : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return text;
5737
        }
5738
5739
        int start = 0;
5740
5741
        // get a good guess on the size of the result buffer so it doesn't have to double if it goes over a bit
5742
        int increase = 0;
5743
5744
        // count the replacement text elements that are larger than their corresponding text being replaced
5745 3 1. replaceEach : negated conditional → SURVIVED
2. replaceEach : changed conditional boundary → KILLED
3. replaceEach : Changed increment from 1 to -1 → KILLED
        for (int i = 0; i < searchList.length; i++) {
5746 2 1. replaceEach : negated conditional → SURVIVED
2. replaceEach : negated conditional → KILLED
            if (searchList[i] == null || replacementList[i] == null) {
5747
                continue;
5748
            }
5749 1 1. replaceEach : Replaced integer subtraction with addition → SURVIVED
            final int greater = replacementList[i].length() - searchList[i].length();
5750 2 1. replaceEach : changed conditional boundary → SURVIVED
2. replaceEach : negated conditional → SURVIVED
            if (greater > 0) {
5751 2 1. replaceEach : Replaced integer multiplication with division → SURVIVED
2. replaceEach : Replaced integer addition with subtraction → SURVIVED
                increase += 3 * greater; // assume 3 matches
5752
            }
5753
        }
5754
        // have upper-bound at 20% increase, then let Java take over
5755 1 1. replaceEach : Replaced integer division with multiplication → SURVIVED
        increase = Math.min(increase, text.length() / 5);
5756
5757 1 1. replaceEach : Replaced integer addition with subtraction → SURVIVED
        final StringBuilder buf = new StringBuilder(text.length() + increase);
5758
5759 1 1. replaceEach : negated conditional → KILLED
        while (textIndex != -1) {
5760
5761 3 1. replaceEach : changed conditional boundary → KILLED
2. replaceEach : Changed increment from 1 to -1 → KILLED
3. replaceEach : negated conditional → KILLED
            for (int i = start; i < textIndex; i++) {
5762
                buf.append(text.charAt(i));
5763
            }
5764
            buf.append(replacementList[replaceIndex]);
5765
5766 1 1. replaceEach : Replaced integer addition with subtraction → KILLED
            start = textIndex + searchList[replaceIndex].length();
5767
5768
            textIndex = -1;
5769
            replaceIndex = -1;
5770
            tempIndex = -1;
5771
            // find the next earliest match
5772
            // NOTE: logic mostly duplicated above START
5773 3 1. replaceEach : changed conditional boundary → KILLED
2. replaceEach : Changed increment from 1 to -1 → KILLED
3. replaceEach : negated conditional → KILLED
            for (int i = 0; i < searchLength; i++) {
5774 2 1. replaceEach : negated conditional → KILLED
2. replaceEach : negated conditional → KILLED
                if (noMoreMatchesForReplIndex[i] || searchList[i] == null ||
5775 2 1. replaceEach : negated conditional → KILLED
2. replaceEach : negated conditional → KILLED
                        searchList[i].isEmpty() || replacementList[i] == null) {
5776
                    continue;
5777
                }
5778
                tempIndex = text.indexOf(searchList[i], start);
5779
5780
                // see if we need to keep searching for this
5781 1 1. replaceEach : negated conditional → KILLED
                if (tempIndex == -1) {
5782
                    noMoreMatchesForReplIndex[i] = true;
5783
                } else {
5784 3 1. replaceEach : changed conditional boundary → SURVIVED
2. replaceEach : negated conditional → KILLED
3. replaceEach : negated conditional → KILLED
                    if (textIndex == -1 || tempIndex < textIndex) {
5785
                        textIndex = tempIndex;
5786
                        replaceIndex = i;
5787
                    }
5788
                }
5789
            }
5790
            // NOTE: logic duplicated above END
5791
5792
        }
5793
        final int textLength = text.length();
5794 3 1. replaceEach : changed conditional boundary → KILLED
2. replaceEach : Changed increment from 1 to -1 → KILLED
3. replaceEach : negated conditional → KILLED
        for (int i = start; i < textLength; i++) {
5795
            buf.append(text.charAt(i));
5796
        }
5797
        final String result = buf.toString();
5798 1 1. replaceEach : negated conditional → KILLED
        if (!repeat) {
5799 1 1. replaceEach : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return result;
5800
        }
5801
5802 2 1. replaceEach : Replaced integer subtraction with addition → KILLED
2. replaceEach : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceEach(result, searchList, replacementList, repeat, timeToLive - 1);
5803
    }
5804
5805
    // Replace, character based
5806
    //-----------------------------------------------------------------------
5807
    /**
5808
     * <p>Replaces all occurrences of a character in a String with another.
5809
     * This is a null-safe version of {@link String#replace(char, char)}.</p>
5810
     *
5811
     * <p>A {@code null} string input returns {@code null}.
5812
     * An empty ("") string input returns an empty string.</p>
5813
     *
5814
     * <pre>
5815
     * StringUtils.replaceChars(null, *, *)        = null
5816
     * StringUtils.replaceChars("", *, *)          = ""
5817
     * StringUtils.replaceChars("abcba", 'b', 'y') = "aycya"
5818
     * StringUtils.replaceChars("abcba", 'z', 'y') = "abcba"
5819
     * </pre>
5820
     *
5821
     * @param str  String to replace characters in, may be null
5822
     * @param searchChar  the character to search for, may be null
5823
     * @param replaceChar  the character to replace, may be null
5824
     * @return modified String, {@code null} if null string input
5825
     * @since 2.0
5826
     */
5827
    public static String replaceChars(final String str, final char searchChar, final char replaceChar) {
5828 1 1. replaceChars : negated conditional → KILLED
        if (str == null) {
5829 1 1. replaceChars : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
5830
        }
5831 1 1. replaceChars : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.replace(searchChar, replaceChar);
5832
    }
5833
5834
    /**
5835
     * <p>Replaces multiple characters in a String in one go.
5836
     * This method can also be used to delete characters.</p>
5837
     *
5838
     * <p>For example:<br>
5839
     * <code>replaceChars(&quot;hello&quot;, &quot;ho&quot;, &quot;jy&quot;) = jelly</code>.</p>
5840
     *
5841
     * <p>A {@code null} string input returns {@code null}.
5842
     * An empty ("") string input returns an empty string.
5843
     * A null or empty set of search characters returns the input string.</p>
5844
     *
5845
     * <p>The length of the search characters should normally equal the length
5846
     * of the replace characters.
5847
     * If the search characters is longer, then the extra search characters
5848
     * are deleted.
5849
     * If the search characters is shorter, then the extra replace characters
5850
     * are ignored.</p>
5851
     *
5852
     * <pre>
5853
     * StringUtils.replaceChars(null, *, *)           = null
5854
     * StringUtils.replaceChars("", *, *)             = ""
5855
     * StringUtils.replaceChars("abc", null, *)       = "abc"
5856
     * StringUtils.replaceChars("abc", "", *)         = "abc"
5857
     * StringUtils.replaceChars("abc", "b", null)     = "ac"
5858
     * StringUtils.replaceChars("abc", "b", "")       = "ac"
5859
     * StringUtils.replaceChars("abcba", "bc", "yz")  = "ayzya"
5860
     * StringUtils.replaceChars("abcba", "bc", "y")   = "ayya"
5861
     * StringUtils.replaceChars("abcba", "bc", "yzx") = "ayzya"
5862
     * </pre>
5863
     *
5864
     * @param str  String to replace characters in, may be null
5865
     * @param searchChars  a set of characters to search for, may be null
5866
     * @param replaceChars  a set of characters to replace, may be null
5867
     * @return modified String, {@code null} if null string input
5868
     * @since 2.0
5869
     */
5870
    public static String replaceChars(final String str, final String searchChars, String replaceChars) {
5871 2 1. replaceChars : negated conditional → KILLED
2. replaceChars : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(searchChars)) {
5872 1 1. replaceChars : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
5873
        }
5874 1 1. replaceChars : negated conditional → KILLED
        if (replaceChars == null) {
5875
            replaceChars = EMPTY;
5876
        }
5877
        boolean modified = false;
5878
        final int replaceCharsLength = replaceChars.length();
5879
        final int strLength = str.length();
5880
        final StringBuilder buf = new StringBuilder(strLength);
5881 3 1. replaceChars : changed conditional boundary → KILLED
2. replaceChars : Changed increment from 1 to -1 → KILLED
3. replaceChars : negated conditional → KILLED
        for (int i = 0; i < strLength; i++) {
5882
            final char ch = str.charAt(i);
5883
            final int index = searchChars.indexOf(ch);
5884 2 1. replaceChars : changed conditional boundary → KILLED
2. replaceChars : negated conditional → KILLED
            if (index >= 0) {
5885
                modified = true;
5886 2 1. replaceChars : changed conditional boundary → KILLED
2. replaceChars : negated conditional → KILLED
                if (index < replaceCharsLength) {
5887
                    buf.append(replaceChars.charAt(index));
5888
                }
5889
            } else {
5890
                buf.append(ch);
5891
            }
5892
        }
5893 1 1. replaceChars : negated conditional → KILLED
        if (modified) {
5894 1 1. replaceChars : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return buf.toString();
5895
        }
5896 1 1. replaceChars : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
5897
    }
5898
5899
    // Overlay
5900
    //-----------------------------------------------------------------------
5901
    /**
5902
     * <p>Overlays part of a String with another String.</p>
5903
     *
5904
     * <p>A {@code null} string input returns {@code null}.
5905
     * A negative index is treated as zero.
5906
     * An index greater than the string length is treated as the string length.
5907
     * The start index is always the smaller of the two indices.</p>
5908
     *
5909
     * <pre>
5910
     * StringUtils.overlay(null, *, *, *)            = null
5911
     * StringUtils.overlay("", "abc", 0, 0)          = "abc"
5912
     * StringUtils.overlay("abcdef", null, 2, 4)     = "abef"
5913
     * StringUtils.overlay("abcdef", "", 2, 4)       = "abef"
5914
     * StringUtils.overlay("abcdef", "", 4, 2)       = "abef"
5915
     * StringUtils.overlay("abcdef", "zzzz", 2, 4)   = "abzzzzef"
5916
     * StringUtils.overlay("abcdef", "zzzz", 4, 2)   = "abzzzzef"
5917
     * StringUtils.overlay("abcdef", "zzzz", -1, 4)  = "zzzzef"
5918
     * StringUtils.overlay("abcdef", "zzzz", 2, 8)   = "abzzzz"
5919
     * StringUtils.overlay("abcdef", "zzzz", -2, -3) = "zzzzabcdef"
5920
     * StringUtils.overlay("abcdef", "zzzz", 8, 10)  = "abcdefzzzz"
5921
     * </pre>
5922
     *
5923
     * @param str  the String to do overlaying in, may be null
5924
     * @param overlay  the String to overlay, may be null
5925
     * @param start  the position to start overlaying at
5926
     * @param end  the position to stop overlaying before
5927
     * @return overlayed String, {@code null} if null String input
5928
     * @since 2.0
5929
     */
5930
    public static String overlay(final String str, String overlay, int start, int end) {
5931 1 1. overlay : negated conditional → KILLED
        if (str == null) {
5932 1 1. overlay : mutated return of Object value for org/apache/commons/lang3/StringUtils::overlay to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
5933
        }
5934 1 1. overlay : negated conditional → KILLED
        if (overlay == null) {
5935
            overlay = EMPTY;
5936
        }
5937
        final int len = str.length();
5938 2 1. overlay : changed conditional boundary → SURVIVED
2. overlay : negated conditional → KILLED
        if (start < 0) {
5939
            start = 0;
5940
        }
5941 2 1. overlay : changed conditional boundary → SURVIVED
2. overlay : negated conditional → KILLED
        if (start > len) {
5942
            start = len;
5943
        }
5944 2 1. overlay : changed conditional boundary → SURVIVED
2. overlay : negated conditional → KILLED
        if (end < 0) {
5945
            end = 0;
5946
        }
5947 2 1. overlay : changed conditional boundary → SURVIVED
2. overlay : negated conditional → KILLED
        if (end > len) {
5948
            end = len;
5949
        }
5950 2 1. overlay : changed conditional boundary → SURVIVED
2. overlay : negated conditional → KILLED
        if (start > end) {
5951
            final int temp = start;
5952
            start = end;
5953
            end = temp;
5954
        }
5955 5 1. overlay : Replaced integer subtraction with addition → SURVIVED
2. overlay : Replaced integer addition with subtraction → KILLED
3. overlay : Replaced integer addition with subtraction → KILLED
4. overlay : Replaced integer addition with subtraction → KILLED
5. overlay : mutated return of Object value for org/apache/commons/lang3/StringUtils::overlay to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new StringBuilder(len + start - end + overlay.length() + 1)
5956
            .append(str.substring(0, start))
5957
            .append(overlay)
5958
            .append(str.substring(end))
5959
            .toString();
5960
    }
5961
5962
    // Chomping
5963
    //-----------------------------------------------------------------------
5964
    /**
5965
     * <p>Removes one newline from end of a String if it's there,
5966
     * otherwise leave it alone.  A newline is &quot;{@code \n}&quot;,
5967
     * &quot;{@code \r}&quot;, or &quot;{@code \r\n}&quot;.</p>
5968
     *
5969
     * <p>NOTE: This method changed in 2.0.
5970
     * It now more closely matches Perl chomp.</p>
5971
     *
5972
     * <pre>
5973
     * StringUtils.chomp(null)          = null
5974
     * StringUtils.chomp("")            = ""
5975
     * StringUtils.chomp("abc \r")      = "abc "
5976
     * StringUtils.chomp("abc\n")       = "abc"
5977
     * StringUtils.chomp("abc\r\n")     = "abc"
5978
     * StringUtils.chomp("abc\r\n\r\n") = "abc\r\n"
5979
     * StringUtils.chomp("abc\n\r")     = "abc\n"
5980
     * StringUtils.chomp("abc\n\rabc")  = "abc\n\rabc"
5981
     * StringUtils.chomp("\r")          = ""
5982
     * StringUtils.chomp("\n")          = ""
5983
     * StringUtils.chomp("\r\n")        = ""
5984
     * </pre>
5985
     *
5986
     * @param str  the String to chomp a newline from, may be null
5987
     * @return String without newline, {@code null} if null String input
5988
     */
5989
    public static String chomp(final String str) {
5990 1 1. chomp : negated conditional → KILLED
        if (isEmpty(str)) {
5991 1 1. chomp : mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
5992
        }
5993
5994 1 1. chomp : negated conditional → KILLED
        if (str.length() == 1) {
5995
            final char ch = str.charAt(0);
5996 2 1. chomp : negated conditional → KILLED
2. chomp : negated conditional → KILLED
            if (ch == CharUtils.CR || ch == CharUtils.LF) {
5997 1 1. chomp : mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return EMPTY;
5998
            }
5999 1 1. chomp : mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6000
        }
6001
6002 1 1. chomp : Replaced integer subtraction with addition → KILLED
        int lastIdx = str.length() - 1;
6003
        final char last = str.charAt(lastIdx);
6004
6005 1 1. chomp : negated conditional → KILLED
        if (last == CharUtils.LF) {
6006 2 1. chomp : Replaced integer subtraction with addition → KILLED
2. chomp : negated conditional → KILLED
            if (str.charAt(lastIdx - 1) == CharUtils.CR) {
6007 1 1. chomp : Changed increment from -1 to 1 → KILLED
                lastIdx--;
6008
            }
6009 1 1. chomp : negated conditional → KILLED
        } else if (last != CharUtils.CR) {
6010 1 1. chomp : Changed increment from 1 to -1 → KILLED
            lastIdx++;
6011
        }
6012 1 1. chomp : mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(0, lastIdx);
6013
    }
6014
6015
    /**
6016
     * <p>Removes {@code separator} from the end of
6017
     * {@code str} if it's there, otherwise leave it alone.</p>
6018
     *
6019
     * <p>NOTE: This method changed in version 2.0.
6020
     * It now more closely matches Perl chomp.
6021
     * For the previous behavior, use {@link #substringBeforeLast(String, String)}.
6022
     * This method uses {@link String#endsWith(String)}.</p>
6023
     *
6024
     * <pre>
6025
     * StringUtils.chomp(null, *)         = null
6026
     * StringUtils.chomp("", *)           = ""
6027
     * StringUtils.chomp("foobar", "bar") = "foo"
6028
     * StringUtils.chomp("foobar", "baz") = "foobar"
6029
     * StringUtils.chomp("foo", "foo")    = ""
6030
     * StringUtils.chomp("foo ", "foo")   = "foo "
6031
     * StringUtils.chomp(" foo", "foo")   = " "
6032
     * StringUtils.chomp("foo", "foooo")  = "foo"
6033
     * StringUtils.chomp("foo", "")       = "foo"
6034
     * StringUtils.chomp("foo", null)     = "foo"
6035
     * </pre>
6036
     *
6037
     * @param str  the String to chomp from, may be null
6038
     * @param separator  separator String, may be null
6039
     * @return String without trailing separator, {@code null} if null String input
6040
     * @deprecated This feature will be removed in Lang 4.0, use {@link StringUtils#removeEnd(String, String)} instead
6041
     */
6042
    @Deprecated
6043
    public static String chomp(final String str, final String separator) {
6044 1 1. chomp : mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return removeEnd(str,separator);
6045
    }
6046
6047
    // Chopping
6048
    //-----------------------------------------------------------------------
6049
    /**
6050
     * <p>Remove the last character from a String.</p>
6051
     *
6052
     * <p>If the String ends in {@code \r\n}, then remove both
6053
     * of them.</p>
6054
     *
6055
     * <pre>
6056
     * StringUtils.chop(null)          = null
6057
     * StringUtils.chop("")            = ""
6058
     * StringUtils.chop("abc \r")      = "abc "
6059
     * StringUtils.chop("abc\n")       = "abc"
6060
     * StringUtils.chop("abc\r\n")     = "abc"
6061
     * StringUtils.chop("abc")         = "ab"
6062
     * StringUtils.chop("abc\nabc")    = "abc\nab"
6063
     * StringUtils.chop("a")           = ""
6064
     * StringUtils.chop("\r")          = ""
6065
     * StringUtils.chop("\n")          = ""
6066
     * StringUtils.chop("\r\n")        = ""
6067
     * </pre>
6068
     *
6069
     * @param str  the String to chop last character from, may be null
6070
     * @return String without last character, {@code null} if null String input
6071
     */
6072
    public static String chop(final String str) {
6073 1 1. chop : negated conditional → KILLED
        if (str == null) {
6074 1 1. chop : mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6075
        }
6076
        final int strLen = str.length();
6077 2 1. chop : changed conditional boundary → SURVIVED
2. chop : negated conditional → KILLED
        if (strLen < 2) {
6078 1 1. chop : mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
6079
        }
6080 1 1. chop : Replaced integer subtraction with addition → KILLED
        final int lastIdx = strLen - 1;
6081
        final String ret = str.substring(0, lastIdx);
6082
        final char last = str.charAt(lastIdx);
6083 3 1. chop : Replaced integer subtraction with addition → KILLED
2. chop : negated conditional → KILLED
3. chop : negated conditional → KILLED
        if (last == CharUtils.LF && ret.charAt(lastIdx - 1) == CharUtils.CR) {
6084 2 1. chop : Replaced integer subtraction with addition → KILLED
2. chop : mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ret.substring(0, lastIdx - 1);
6085
        }
6086 1 1. chop : mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return ret;
6087
    }
6088
6089
    // Conversion
6090
    //-----------------------------------------------------------------------
6091
6092
    // Padding
6093
    //-----------------------------------------------------------------------
6094
    /**
6095
     * <p>Repeat a String {@code repeat} times to form a
6096
     * new String.</p>
6097
     *
6098
     * <pre>
6099
     * StringUtils.repeat(null, 2) = null
6100
     * StringUtils.repeat("", 0)   = ""
6101
     * StringUtils.repeat("", 2)   = ""
6102
     * StringUtils.repeat("a", 3)  = "aaa"
6103
     * StringUtils.repeat("ab", 2) = "abab"
6104
     * StringUtils.repeat("a", -2) = ""
6105
     * </pre>
6106
     *
6107
     * @param str  the String to repeat, may be null
6108
     * @param repeat  number of times to repeat str, negative treated as zero
6109
     * @return a new String consisting of the original String repeated,
6110
     *  {@code null} if null String input
6111
     */
6112
    public static String repeat(final String str, final int repeat) {
6113
        // Performance tuned for 2.0 (JDK1.4)
6114
6115 1 1. repeat : negated conditional → KILLED
        if (str == null) {
6116 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6117
        }
6118 2 1. repeat : changed conditional boundary → SURVIVED
2. repeat : negated conditional → KILLED
        if (repeat <= 0) {
6119 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
6120
        }
6121
        final int inputLength = str.length();
6122 2 1. repeat : negated conditional → KILLED
2. repeat : negated conditional → KILLED
        if (repeat == 1 || inputLength == 0) {
6123 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6124
        }
6125 3 1. repeat : changed conditional boundary → SURVIVED
2. repeat : negated conditional → SURVIVED
3. repeat : negated conditional → KILLED
        if (inputLength == 1 && repeat <= PAD_LIMIT) {
6126 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return repeat(str.charAt(0), repeat);
6127
        }
6128
6129 1 1. repeat : Replaced integer multiplication with division → KILLED
        final int outputLength = inputLength * repeat;
6130
        switch (inputLength) {
6131
            case 1 :
6132 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return repeat(str.charAt(0), repeat);
6133
            case 2 :
6134
                final char ch0 = str.charAt(0);
6135
                final char ch1 = str.charAt(1);
6136
                final char[] output2 = new char[outputLength];
6137 6 1. repeat : Changed increment from -1 to 1 → TIMED_OUT
2. repeat : Changed increment from -1 to 1 → TIMED_OUT
3. repeat : changed conditional boundary → KILLED
4. repeat : Replaced integer multiplication with division → KILLED
5. repeat : Replaced integer subtraction with addition → KILLED
6. repeat : negated conditional → KILLED
                for (int i = repeat * 2 - 2; i >= 0; i--, i--) {
6138
                    output2[i] = ch0;
6139 1 1. repeat : Replaced integer addition with subtraction → KILLED
                    output2[i + 1] = ch1;
6140
                }
6141 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return new String(output2);
6142
            default :
6143
                final StringBuilder buf = new StringBuilder(outputLength);
6144 3 1. repeat : changed conditional boundary → KILLED
2. repeat : Changed increment from 1 to -1 → KILLED
3. repeat : negated conditional → KILLED
                for (int i = 0; i < repeat; i++) {
6145
                    buf.append(str);
6146
                }
6147 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return buf.toString();
6148
        }
6149
    }
6150
6151
    /**
6152
     * <p>Repeat a String {@code repeat} times to form a
6153
     * new String, with a String separator injected each time. </p>
6154
     *
6155
     * <pre>
6156
     * StringUtils.repeat(null, null, 2) = null
6157
     * StringUtils.repeat(null, "x", 2)  = null
6158
     * StringUtils.repeat("", null, 0)   = ""
6159
     * StringUtils.repeat("", "", 2)     = ""
6160
     * StringUtils.repeat("", "x", 3)    = "xxx"
6161
     * StringUtils.repeat("?", ", ", 3)  = "?, ?, ?"
6162
     * </pre>
6163
     *
6164
     * @param str        the String to repeat, may be null
6165
     * @param separator  the String to inject, may be null
6166
     * @param repeat     number of times to repeat str, negative treated as zero
6167
     * @return a new String consisting of the original String repeated,
6168
     *  {@code null} if null String input
6169
     * @since 2.5
6170
     */
6171
    public static String repeat(final String str, final String separator, final int repeat) {
6172 2 1. repeat : negated conditional → KILLED
2. repeat : negated conditional → KILLED
        if(str == null || separator == null) {
6173 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return repeat(str, repeat);
6174
        }
6175
        // given that repeat(String, int) is quite optimized, better to rely on it than try and splice this into it
6176
        final String result = repeat(str + separator, repeat);
6177 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return removeEnd(result, separator);
6178
    }
6179
6180
    /**
6181
     * <p>Returns padding using the specified delimiter repeated
6182
     * to a given length.</p>
6183
     *
6184
     * <pre>
6185
     * StringUtils.repeat('e', 0)  = ""
6186
     * StringUtils.repeat('e', 3)  = "eee"
6187
     * StringUtils.repeat('e', -2) = ""
6188
     * </pre>
6189
     *
6190
     * <p>Note: this method doesn't not support padding with
6191
     * <a href="http://www.unicode.org/glossary/#supplementary_character">Unicode Supplementary Characters</a>
6192
     * as they require a pair of {@code char}s to be represented.
6193
     * If you are needing to support full I18N of your applications
6194
     * consider using {@link #repeat(String, int)} instead.
6195
     * </p>
6196
     *
6197
     * @param ch  character to repeat
6198
     * @param repeat  number of times to repeat char, negative treated as zero
6199
     * @return String with repeated character
6200
     * @see #repeat(String, int)
6201
     */
6202
    public static String repeat(final char ch, final int repeat) {
6203 2 1. repeat : changed conditional boundary → SURVIVED
2. repeat : negated conditional → KILLED
        if (repeat <= 0) {
6204 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
6205
        }
6206
        final char[] buf = new char[repeat];
6207 4 1. repeat : changed conditional boundary → KILLED
2. repeat : Changed increment from -1 to 1 → KILLED
3. repeat : Replaced integer subtraction with addition → KILLED
4. repeat : negated conditional → KILLED
        for (int i = repeat - 1; i >= 0; i--) {
6208
            buf[i] = ch;
6209
        }
6210 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(buf);
6211
    }
6212
6213
    /**
6214
     * <p>Right pad a String with spaces (' ').</p>
6215
     *
6216
     * <p>The String is padded to the size of {@code size}.</p>
6217
     *
6218
     * <pre>
6219
     * StringUtils.rightPad(null, *)   = null
6220
     * StringUtils.rightPad("", 3)     = "   "
6221
     * StringUtils.rightPad("bat", 3)  = "bat"
6222
     * StringUtils.rightPad("bat", 5)  = "bat  "
6223
     * StringUtils.rightPad("bat", 1)  = "bat"
6224
     * StringUtils.rightPad("bat", -1) = "bat"
6225
     * </pre>
6226
     *
6227
     * @param str  the String to pad out, may be null
6228
     * @param size  the size to pad to
6229
     * @return right padded String or original String if no padding is necessary,
6230
     *  {@code null} if null String input
6231
     */
6232
    public static String rightPad(final String str, final int size) {
6233 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return rightPad(str, size, ' ');
6234
    }
6235
6236
    /**
6237
     * <p>Right pad a String with a specified character.</p>
6238
     *
6239
     * <p>The String is padded to the size of {@code size}.</p>
6240
     *
6241
     * <pre>
6242
     * StringUtils.rightPad(null, *, *)     = null
6243
     * StringUtils.rightPad("", 3, 'z')     = "zzz"
6244
     * StringUtils.rightPad("bat", 3, 'z')  = "bat"
6245
     * StringUtils.rightPad("bat", 5, 'z')  = "batzz"
6246
     * StringUtils.rightPad("bat", 1, 'z')  = "bat"
6247
     * StringUtils.rightPad("bat", -1, 'z') = "bat"
6248
     * </pre>
6249
     *
6250
     * @param str  the String to pad out, may be null
6251
     * @param size  the size to pad to
6252
     * @param padChar  the character to pad with
6253
     * @return right padded String or original String if no padding is necessary,
6254
     *  {@code null} if null String input
6255
     * @since 2.0
6256
     */
6257
    public static String rightPad(final String str, final int size, final char padChar) {
6258 1 1. rightPad : negated conditional → KILLED
        if (str == null) {
6259 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6260
        }
6261 1 1. rightPad : Replaced integer subtraction with addition → KILLED
        final int pads = size - str.length();
6262 2 1. rightPad : changed conditional boundary → SURVIVED
2. rightPad : negated conditional → KILLED
        if (pads <= 0) {
6263 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str; // returns original String when possible
6264
        }
6265 2 1. rightPad : changed conditional boundary → SURVIVED
2. rightPad : negated conditional → KILLED
        if (pads > PAD_LIMIT) {
6266 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return rightPad(str, size, String.valueOf(padChar));
6267
        }
6268 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.concat(repeat(padChar, pads));
6269
    }
6270
6271
    /**
6272
     * <p>Right pad a String with a specified String.</p>
6273
     *
6274
     * <p>The String is padded to the size of {@code size}.</p>
6275
     *
6276
     * <pre>
6277
     * StringUtils.rightPad(null, *, *)      = null
6278
     * StringUtils.rightPad("", 3, "z")      = "zzz"
6279
     * StringUtils.rightPad("bat", 3, "yz")  = "bat"
6280
     * StringUtils.rightPad("bat", 5, "yz")  = "batyz"
6281
     * StringUtils.rightPad("bat", 8, "yz")  = "batyzyzy"
6282
     * StringUtils.rightPad("bat", 1, "yz")  = "bat"
6283
     * StringUtils.rightPad("bat", -1, "yz") = "bat"
6284
     * StringUtils.rightPad("bat", 5, null)  = "bat  "
6285
     * StringUtils.rightPad("bat", 5, "")    = "bat  "
6286
     * </pre>
6287
     *
6288
     * @param str  the String to pad out, may be null
6289
     * @param size  the size to pad to
6290
     * @param padStr  the String to pad with, null or empty treated as single space
6291
     * @return right padded String or original String if no padding is necessary,
6292
     *  {@code null} if null String input
6293
     */
6294
    public static String rightPad(final String str, final int size, String padStr) {
6295 1 1. rightPad : negated conditional → KILLED
        if (str == null) {
6296 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6297
        }
6298 1 1. rightPad : negated conditional → KILLED
        if (isEmpty(padStr)) {
6299
            padStr = SPACE;
6300
        }
6301
        final int padLen = padStr.length();
6302
        final int strLen = str.length();
6303 1 1. rightPad : Replaced integer subtraction with addition → KILLED
        final int pads = size - strLen;
6304 2 1. rightPad : changed conditional boundary → SURVIVED
2. rightPad : negated conditional → KILLED
        if (pads <= 0) {
6305 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str; // returns original String when possible
6306
        }
6307 3 1. rightPad : changed conditional boundary → SURVIVED
2. rightPad : negated conditional → KILLED
3. rightPad : negated conditional → KILLED
        if (padLen == 1 && pads <= PAD_LIMIT) {
6308 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return rightPad(str, size, padStr.charAt(0));
6309
        }
6310
6311 1 1. rightPad : negated conditional → KILLED
        if (pads == padLen) {
6312 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.concat(padStr);
6313 2 1. rightPad : changed conditional boundary → SURVIVED
2. rightPad : negated conditional → KILLED
        } else if (pads < padLen) {
6314 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.concat(padStr.substring(0, pads));
6315
        } else {
6316
            final char[] padding = new char[pads];
6317
            final char[] padChars = padStr.toCharArray();
6318 3 1. rightPad : changed conditional boundary → KILLED
2. rightPad : Changed increment from 1 to -1 → KILLED
3. rightPad : negated conditional → KILLED
            for (int i = 0; i < pads; i++) {
6319 1 1. rightPad : Replaced integer modulus with multiplication → KILLED
                padding[i] = padChars[i % padLen];
6320
            }
6321 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.concat(new String(padding));
6322
        }
6323
    }
6324
6325
    /**
6326
     * <p>Left pad a String with spaces (' ').</p>
6327
     *
6328
     * <p>The String is padded to the size of {@code size}.</p>
6329
     *
6330
     * <pre>
6331
     * StringUtils.leftPad(null, *)   = null
6332
     * StringUtils.leftPad("", 3)     = "   "
6333
     * StringUtils.leftPad("bat", 3)  = "bat"
6334
     * StringUtils.leftPad("bat", 5)  = "  bat"
6335
     * StringUtils.leftPad("bat", 1)  = "bat"
6336
     * StringUtils.leftPad("bat", -1) = "bat"
6337
     * </pre>
6338
     *
6339
     * @param str  the String to pad out, may be null
6340
     * @param size  the size to pad to
6341
     * @return left padded String or original String if no padding is necessary,
6342
     *  {@code null} if null String input
6343
     */
6344
    public static String leftPad(final String str, final int size) {
6345 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return leftPad(str, size, ' ');
6346
    }
6347
6348
    /**
6349
     * <p>Left pad a String with a specified character.</p>
6350
     *
6351
     * <p>Pad to a size of {@code size}.</p>
6352
     *
6353
     * <pre>
6354
     * StringUtils.leftPad(null, *, *)     = null
6355
     * StringUtils.leftPad("", 3, 'z')     = "zzz"
6356
     * StringUtils.leftPad("bat", 3, 'z')  = "bat"
6357
     * StringUtils.leftPad("bat", 5, 'z')  = "zzbat"
6358
     * StringUtils.leftPad("bat", 1, 'z')  = "bat"
6359
     * StringUtils.leftPad("bat", -1, 'z') = "bat"
6360
     * </pre>
6361
     *
6362
     * @param str  the String to pad out, may be null
6363
     * @param size  the size to pad to
6364
     * @param padChar  the character to pad with
6365
     * @return left padded String or original String if no padding is necessary,
6366
     *  {@code null} if null String input
6367
     * @since 2.0
6368
     */
6369
    public static String leftPad(final String str, final int size, final char padChar) {
6370 1 1. leftPad : negated conditional → KILLED
        if (str == null) {
6371 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6372
        }
6373 1 1. leftPad : Replaced integer subtraction with addition → KILLED
        final int pads = size - str.length();
6374 2 1. leftPad : changed conditional boundary → SURVIVED
2. leftPad : negated conditional → KILLED
        if (pads <= 0) {
6375 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str; // returns original String when possible
6376
        }
6377 2 1. leftPad : changed conditional boundary → SURVIVED
2. leftPad : negated conditional → KILLED
        if (pads > PAD_LIMIT) {
6378 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return leftPad(str, size, String.valueOf(padChar));
6379
        }
6380 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return repeat(padChar, pads).concat(str);
6381
    }
6382
6383
    /**
6384
     * <p>Left pad a String with a specified String.</p>
6385
     *
6386
     * <p>Pad to a size of {@code size}.</p>
6387
     *
6388
     * <pre>
6389
     * StringUtils.leftPad(null, *, *)      = null
6390
     * StringUtils.leftPad("", 3, "z")      = "zzz"
6391
     * StringUtils.leftPad("bat", 3, "yz")  = "bat"
6392
     * StringUtils.leftPad("bat", 5, "yz")  = "yzbat"
6393
     * StringUtils.leftPad("bat", 8, "yz")  = "yzyzybat"
6394
     * StringUtils.leftPad("bat", 1, "yz")  = "bat"
6395
     * StringUtils.leftPad("bat", -1, "yz") = "bat"
6396
     * StringUtils.leftPad("bat", 5, null)  = "  bat"
6397
     * StringUtils.leftPad("bat", 5, "")    = "  bat"
6398
     * </pre>
6399
     *
6400
     * @param str  the String to pad out, may be null
6401
     * @param size  the size to pad to
6402
     * @param padStr  the String to pad with, null or empty treated as single space
6403
     * @return left padded String or original String if no padding is necessary,
6404
     *  {@code null} if null String input
6405
     */
6406
    public static String leftPad(final String str, final int size, String padStr) {
6407 1 1. leftPad : negated conditional → KILLED
        if (str == null) {
6408 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6409
        }
6410 1 1. leftPad : negated conditional → KILLED
        if (isEmpty(padStr)) {
6411
            padStr = SPACE;
6412
        }
6413
        final int padLen = padStr.length();
6414
        final int strLen = str.length();
6415 1 1. leftPad : Replaced integer subtraction with addition → KILLED
        final int pads = size - strLen;
6416 2 1. leftPad : changed conditional boundary → SURVIVED
2. leftPad : negated conditional → KILLED
        if (pads <= 0) {
6417 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str; // returns original String when possible
6418
        }
6419 3 1. leftPad : changed conditional boundary → SURVIVED
2. leftPad : negated conditional → KILLED
3. leftPad : negated conditional → KILLED
        if (padLen == 1 && pads <= PAD_LIMIT) {
6420 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return leftPad(str, size, padStr.charAt(0));
6421
        }
6422
6423 1 1. leftPad : negated conditional → KILLED
        if (pads == padLen) {
6424 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return padStr.concat(str);
6425 2 1. leftPad : changed conditional boundary → SURVIVED
2. leftPad : negated conditional → KILLED
        } else if (pads < padLen) {
6426 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return padStr.substring(0, pads).concat(str);
6427
        } else {
6428
            final char[] padding = new char[pads];
6429
            final char[] padChars = padStr.toCharArray();
6430 3 1. leftPad : changed conditional boundary → KILLED
2. leftPad : Changed increment from 1 to -1 → KILLED
3. leftPad : negated conditional → KILLED
            for (int i = 0; i < pads; i++) {
6431 1 1. leftPad : Replaced integer modulus with multiplication → KILLED
                padding[i] = padChars[i % padLen];
6432
            }
6433 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return new String(padding).concat(str);
6434
        }
6435
    }
6436
6437
    /**
6438
     * Gets a CharSequence length or {@code 0} if the CharSequence is
6439
     * {@code null}.
6440
     *
6441
     * @param cs
6442
     *            a CharSequence or {@code null}
6443
     * @return CharSequence length or {@code 0} if the CharSequence is
6444
     *         {@code null}.
6445
     * @since 2.4
6446
     * @since 3.0 Changed signature from length(String) to length(CharSequence)
6447
     */
6448
    public static int length(final CharSequence cs) {
6449 2 1. length : negated conditional → KILLED
2. length : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return cs == null ? 0 : cs.length();
6450
    }
6451
6452
    // Centering
6453
    //-----------------------------------------------------------------------
6454
    /**
6455
     * <p>Centers a String in a larger String of size {@code size}
6456
     * using the space character (' ').</p>
6457
     *
6458
     * <p>If the size is less than the String length, the String is returned.
6459
     * A {@code null} String returns {@code null}.
6460
     * A negative size is treated as zero.</p>
6461
     *
6462
     * <p>Equivalent to {@code center(str, size, " ")}.</p>
6463
     *
6464
     * <pre>
6465
     * StringUtils.center(null, *)   = null
6466
     * StringUtils.center("", 4)     = "    "
6467
     * StringUtils.center("ab", -1)  = "ab"
6468
     * StringUtils.center("ab", 4)   = " ab "
6469
     * StringUtils.center("abcd", 2) = "abcd"
6470
     * StringUtils.center("a", 4)    = " a  "
6471
     * </pre>
6472
     *
6473
     * @param str  the String to center, may be null
6474
     * @param size  the int size of new String, negative treated as zero
6475
     * @return centered String, {@code null} if null String input
6476
     */
6477
    public static String center(final String str, final int size) {
6478 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return center(str, size, ' ');
6479
    }
6480
6481
    /**
6482
     * <p>Centers a String in a larger String of size {@code size}.
6483
     * Uses a supplied character as the value to pad the String with.</p>
6484
     *
6485
     * <p>If the size is less than the String length, the String is returned.
6486
     * A {@code null} String returns {@code null}.
6487
     * A negative size is treated as zero.</p>
6488
     *
6489
     * <pre>
6490
     * StringUtils.center(null, *, *)     = null
6491
     * StringUtils.center("", 4, ' ')     = "    "
6492
     * StringUtils.center("ab", -1, ' ')  = "ab"
6493
     * StringUtils.center("ab", 4, ' ')   = " ab "
6494
     * StringUtils.center("abcd", 2, ' ') = "abcd"
6495
     * StringUtils.center("a", 4, ' ')    = " a  "
6496
     * StringUtils.center("a", 4, 'y')    = "yayy"
6497
     * </pre>
6498
     *
6499
     * @param str  the String to center, may be null
6500
     * @param size  the int size of new String, negative treated as zero
6501
     * @param padChar  the character to pad the new String with
6502
     * @return centered String, {@code null} if null String input
6503
     * @since 2.0
6504
     */
6505
    public static String center(String str, final int size, final char padChar) {
6506 3 1. center : changed conditional boundary → SURVIVED
2. center : negated conditional → KILLED
3. center : negated conditional → KILLED
        if (str == null || size <= 0) {
6507 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6508
        }
6509
        final int strLen = str.length();
6510 1 1. center : Replaced integer subtraction with addition → KILLED
        final int pads = size - strLen;
6511 2 1. center : changed conditional boundary → SURVIVED
2. center : negated conditional → KILLED
        if (pads <= 0) {
6512 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6513
        }
6514 2 1. center : Replaced integer division with multiplication → KILLED
2. center : Replaced integer addition with subtraction → KILLED
        str = leftPad(str, strLen + pads / 2, padChar);
6515
        str = rightPad(str, size, padChar);
6516 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
6517
    }
6518
6519
    /**
6520
     * <p>Centers a String in a larger String of size {@code size}.
6521
     * Uses a supplied String as the value to pad the String with.</p>
6522
     *
6523
     * <p>If the size is less than the String length, the String is returned.
6524
     * A {@code null} String returns {@code null}.
6525
     * A negative size is treated as zero.</p>
6526
     *
6527
     * <pre>
6528
     * StringUtils.center(null, *, *)     = null
6529
     * StringUtils.center("", 4, " ")     = "    "
6530
     * StringUtils.center("ab", -1, " ")  = "ab"
6531
     * StringUtils.center("ab", 4, " ")   = " ab "
6532
     * StringUtils.center("abcd", 2, " ") = "abcd"
6533
     * StringUtils.center("a", 4, " ")    = " a  "
6534
     * StringUtils.center("a", 4, "yz")   = "yayz"
6535
     * StringUtils.center("abc", 7, null) = "  abc  "
6536
     * StringUtils.center("abc", 7, "")   = "  abc  "
6537
     * </pre>
6538
     *
6539
     * @param str  the String to center, may be null
6540
     * @param size  the int size of new String, negative treated as zero
6541
     * @param padStr  the String to pad the new String with, must not be null or empty
6542
     * @return centered String, {@code null} if null String input
6543
     * @throws IllegalArgumentException if padStr is {@code null} or empty
6544
     */
6545
    public static String center(String str, final int size, String padStr) {
6546 3 1. center : changed conditional boundary → SURVIVED
2. center : negated conditional → KILLED
3. center : negated conditional → KILLED
        if (str == null || size <= 0) {
6547 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6548
        }
6549 1 1. center : negated conditional → KILLED
        if (isEmpty(padStr)) {
6550
            padStr = SPACE;
6551
        }
6552
        final int strLen = str.length();
6553 1 1. center : Replaced integer subtraction with addition → KILLED
        final int pads = size - strLen;
6554 2 1. center : changed conditional boundary → SURVIVED
2. center : negated conditional → KILLED
        if (pads <= 0) {
6555 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6556
        }
6557 2 1. center : Replaced integer division with multiplication → KILLED
2. center : Replaced integer addition with subtraction → KILLED
        str = leftPad(str, strLen + pads / 2, padStr);
6558
        str = rightPad(str, size, padStr);
6559 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
6560
    }
6561
6562
    // Case conversion
6563
    //-----------------------------------------------------------------------
6564
    /**
6565
     * <p>Converts a String to upper case as per {@link String#toUpperCase()}.</p>
6566
     *
6567
     * <p>A {@code null} input String returns {@code null}.</p>
6568
     *
6569
     * <pre>
6570
     * StringUtils.upperCase(null)  = null
6571
     * StringUtils.upperCase("")    = ""
6572
     * StringUtils.upperCase("aBc") = "ABC"
6573
     * </pre>
6574
     *
6575
     * <p><strong>Note:</strong> As described in the documentation for {@link String#toUpperCase()},
6576
     * the result of this method is affected by the current locale.
6577
     * For platform-independent case transformations, the method {@link #lowerCase(String, Locale)}
6578
     * should be used with a specific locale (e.g. {@link Locale#ENGLISH}).</p>
6579
     *
6580
     * @param str  the String to upper case, may be null
6581
     * @return the upper cased String, {@code null} if null String input
6582
     */
6583
    public static String upperCase(final String str) {
6584 1 1. upperCase : negated conditional → KILLED
        if (str == null) {
6585 1 1. upperCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6586
        }
6587 1 1. upperCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.toUpperCase();
6588
    }
6589
6590
    /**
6591
     * <p>Converts a String to upper case as per {@link String#toUpperCase(Locale)}.</p>
6592
     *
6593
     * <p>A {@code null} input String returns {@code null}.</p>
6594
     *
6595
     * <pre>
6596
     * StringUtils.upperCase(null, Locale.ENGLISH)  = null
6597
     * StringUtils.upperCase("", Locale.ENGLISH)    = ""
6598
     * StringUtils.upperCase("aBc", Locale.ENGLISH) = "ABC"
6599
     * </pre>
6600
     *
6601
     * @param str  the String to upper case, may be null
6602
     * @param locale  the locale that defines the case transformation rules, must not be null
6603
     * @return the upper cased String, {@code null} if null String input
6604
     * @since 2.5
6605
     */
6606
    public static String upperCase(final String str, final Locale locale) {
6607 1 1. upperCase : negated conditional → KILLED
        if (str == null) {
6608 1 1. upperCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6609
        }
6610 1 1. upperCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.toUpperCase(locale);
6611
    }
6612
6613
    /**
6614
     * <p>Converts a String to lower case as per {@link String#toLowerCase()}.</p>
6615
     *
6616
     * <p>A {@code null} input String returns {@code null}.</p>
6617
     *
6618
     * <pre>
6619
     * StringUtils.lowerCase(null)  = null
6620
     * StringUtils.lowerCase("")    = ""
6621
     * StringUtils.lowerCase("aBc") = "abc"
6622
     * </pre>
6623
     *
6624
     * <p><strong>Note:</strong> As described in the documentation for {@link String#toLowerCase()},
6625
     * the result of this method is affected by the current locale.
6626
     * For platform-independent case transformations, the method {@link #lowerCase(String, Locale)}
6627
     * should be used with a specific locale (e.g. {@link Locale#ENGLISH}).</p>
6628
     *
6629
     * @param str  the String to lower case, may be null
6630
     * @return the lower cased String, {@code null} if null String input
6631
     */
6632
    public static String lowerCase(final String str) {
6633 1 1. lowerCase : negated conditional → KILLED
        if (str == null) {
6634 1 1. lowerCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6635
        }
6636 1 1. lowerCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.toLowerCase();
6637
    }
6638
6639
    /**
6640
     * <p>Converts a String to lower case as per {@link String#toLowerCase(Locale)}.</p>
6641
     *
6642
     * <p>A {@code null} input String returns {@code null}.</p>
6643
     *
6644
     * <pre>
6645
     * StringUtils.lowerCase(null, Locale.ENGLISH)  = null
6646
     * StringUtils.lowerCase("", Locale.ENGLISH)    = ""
6647
     * StringUtils.lowerCase("aBc", Locale.ENGLISH) = "abc"
6648
     * </pre>
6649
     *
6650
     * @param str  the String to lower case, may be null
6651
     * @param locale  the locale that defines the case transformation rules, must not be null
6652
     * @return the lower cased String, {@code null} if null String input
6653
     * @since 2.5
6654
     */
6655
    public static String lowerCase(final String str, final Locale locale) {
6656 1 1. lowerCase : negated conditional → KILLED
        if (str == null) {
6657 1 1. lowerCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6658
        }
6659 1 1. lowerCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.toLowerCase(locale);
6660
    }
6661
6662
    /**
6663
     * <p>Capitalizes a String changing the first character to title case as
6664
     * per {@link Character#toTitleCase(int)}. No other characters are changed.</p>
6665
     *
6666
     * <p>For a word based algorithm, see {@link org.apache.commons.lang3.text.WordUtils#capitalize(String)}.
6667
     * A {@code null} input String returns {@code null}.</p>
6668
     *
6669
     * <pre>
6670
     * StringUtils.capitalize(null)  = null
6671
     * StringUtils.capitalize("")    = ""
6672
     * StringUtils.capitalize("cat") = "Cat"
6673
     * StringUtils.capitalize("cAt") = "CAt"
6674
     * StringUtils.capitalize("'cat'") = "'cat'"
6675
     * </pre>
6676
     *
6677
     * @param str the String to capitalize, may be null
6678
     * @return the capitalized String, {@code null} if null String input
6679
     * @see org.apache.commons.lang3.text.WordUtils#capitalize(String)
6680
     * @see #uncapitalize(String)
6681
     * @since 2.0
6682
     */
6683
    public static String capitalize(final String str) {
6684
        int strLen;
6685 2 1. capitalize : negated conditional → KILLED
2. capitalize : negated conditional → KILLED
        if (str == null || (strLen = str.length()) == 0) {
6686 1 1. capitalize : mutated return of Object value for org/apache/commons/lang3/StringUtils::capitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6687
        }
6688
6689
        final int firstCodepoint = str.codePointAt(0);
6690
        final int newCodePoint = Character.toTitleCase(firstCodepoint);
6691 1 1. capitalize : negated conditional → KILLED
        if (firstCodepoint == newCodePoint) {
6692
            // already capitalized
6693 1 1. capitalize : mutated return of Object value for org/apache/commons/lang3/StringUtils::capitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6694
        }
6695
6696
        final int newCodePoints[] = new int[strLen]; // cannot be longer than the char array
6697
        int outOffset = 0;
6698 1 1. capitalize : Changed increment from 1 to -1 → KILLED
        newCodePoints[outOffset++] = newCodePoint; // copy the first codepoint
6699 2 1. capitalize : changed conditional boundary → KILLED
2. capitalize : negated conditional → KILLED
        for (int inOffset = Character.charCount(firstCodepoint); inOffset < strLen; ) {
6700
            final int codepoint = str.codePointAt(inOffset);
6701 1 1. capitalize : Changed increment from 1 to -1 → KILLED
            newCodePoints[outOffset++] = codepoint; // copy the remaining ones
6702 1 1. capitalize : Replaced integer addition with subtraction → KILLED
            inOffset += Character.charCount(codepoint);
6703
         }
6704 1 1. capitalize : mutated return of Object value for org/apache/commons/lang3/StringUtils::capitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(newCodePoints, 0, outOffset);
6705
    }
6706
6707
    /**
6708
     * <p>Uncapitalizes a String, changing the first character to lower case as
6709
     * per {@link Character#toLowerCase(int)}. No other characters are changed.</p>
6710
     *
6711
     * <p>For a word based algorithm, see {@link org.apache.commons.lang3.text.WordUtils#uncapitalize(String)}.
6712
     * A {@code null} input String returns {@code null}.</p>
6713
     *
6714
     * <pre>
6715
     * StringUtils.uncapitalize(null)  = null
6716
     * StringUtils.uncapitalize("")    = ""
6717
     * StringUtils.uncapitalize("cat") = "cat"
6718
     * StringUtils.uncapitalize("Cat") = "cat"
6719
     * StringUtils.uncapitalize("CAT") = "cAT"
6720
     * </pre>
6721
     *
6722
     * @param str the String to uncapitalize, may be null
6723
     * @return the uncapitalized String, {@code null} if null String input
6724
     * @see org.apache.commons.lang3.text.WordUtils#uncapitalize(String)
6725
     * @see #capitalize(String)
6726
     * @since 2.0
6727
     */
6728
    public static String uncapitalize(final String str) {
6729
        int strLen;
6730 2 1. uncapitalize : negated conditional → KILLED
2. uncapitalize : negated conditional → KILLED
        if (str == null || (strLen = str.length()) == 0) {
6731 1 1. uncapitalize : mutated return of Object value for org/apache/commons/lang3/StringUtils::uncapitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6732
        }
6733
6734
        final int firstCodepoint = str.codePointAt(0);
6735
        final int newCodePoint = Character.toLowerCase(firstCodepoint);
6736 1 1. uncapitalize : negated conditional → KILLED
        if (firstCodepoint == newCodePoint) {
6737
            // already capitalized
6738 1 1. uncapitalize : mutated return of Object value for org/apache/commons/lang3/StringUtils::uncapitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6739
        }
6740
6741
        final int newCodePoints[] = new int[strLen]; // cannot be longer than the char array
6742
        int outOffset = 0;
6743 1 1. uncapitalize : Changed increment from 1 to -1 → KILLED
        newCodePoints[outOffset++] = newCodePoint; // copy the first codepoint
6744 2 1. uncapitalize : changed conditional boundary → KILLED
2. uncapitalize : negated conditional → KILLED
        for (int inOffset = Character.charCount(firstCodepoint); inOffset < strLen; ) {
6745
            final int codepoint = str.codePointAt(inOffset);
6746 1 1. uncapitalize : Changed increment from 1 to -1 → KILLED
            newCodePoints[outOffset++] = codepoint; // copy the remaining ones
6747 1 1. uncapitalize : Replaced integer addition with subtraction → KILLED
            inOffset += Character.charCount(codepoint);
6748
         }
6749 1 1. uncapitalize : mutated return of Object value for org/apache/commons/lang3/StringUtils::uncapitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(newCodePoints, 0, outOffset);
6750
    }
6751
6752
    /**
6753
     * <p>Swaps the case of a String changing upper and title case to
6754
     * lower case, and lower case to upper case.</p>
6755
     *
6756
     * <ul>
6757
     *  <li>Upper case character converts to Lower case</li>
6758
     *  <li>Title case character converts to Lower case</li>
6759
     *  <li>Lower case character converts to Upper case</li>
6760
     * </ul>
6761
     *
6762
     * <p>For a word based algorithm, see {@link org.apache.commons.lang3.text.WordUtils#swapCase(String)}.
6763
     * A {@code null} input String returns {@code null}.</p>
6764
     *
6765
     * <pre>
6766
     * StringUtils.swapCase(null)                 = null
6767
     * StringUtils.swapCase("")                   = ""
6768
     * StringUtils.swapCase("The dog has a BONE") = "tHE DOG HAS A bone"
6769
     * </pre>
6770
     *
6771
     * <p>NOTE: This method changed in Lang version 2.0.
6772
     * It no longer performs a word based algorithm.
6773
     * If you only use ASCII, you will notice no change.
6774
     * That functionality is available in org.apache.commons.lang3.text.WordUtils.</p>
6775
     *
6776
     * @param str  the String to swap case, may be null
6777
     * @return the changed String, {@code null} if null String input
6778
     */
6779
    public static String swapCase(final String str) {
6780 1 1. swapCase : negated conditional → KILLED
        if (StringUtils.isEmpty(str)) {
6781 1 1. swapCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::swapCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6782
        }
6783
6784
        final int strLen = str.length();
6785
        final int newCodePoints[] = new int[strLen]; // cannot be longer than the char array
6786
        int outOffset = 0;
6787 2 1. swapCase : changed conditional boundary → KILLED
2. swapCase : negated conditional → KILLED
        for (int i = 0; i < strLen; ) {
6788
            final int oldCodepoint = str.codePointAt(i);
6789
            final int newCodePoint;
6790 1 1. swapCase : negated conditional → KILLED
            if (Character.isUpperCase(oldCodepoint)) {
6791
                newCodePoint = Character.toLowerCase(oldCodepoint);
6792 1 1. swapCase : negated conditional → KILLED
            } else if (Character.isTitleCase(oldCodepoint)) {
6793
                newCodePoint = Character.toLowerCase(oldCodepoint);
6794 1 1. swapCase : negated conditional → KILLED
            } else if (Character.isLowerCase(oldCodepoint)) {
6795
                newCodePoint = Character.toUpperCase(oldCodepoint);
6796
            } else {
6797
                newCodePoint = oldCodepoint;
6798
            }
6799 1 1. swapCase : Changed increment from 1 to -1 → KILLED
            newCodePoints[outOffset++] = newCodePoint;
6800 1 1. swapCase : Replaced integer addition with subtraction → KILLED
            i += Character.charCount(newCodePoint);
6801
         }
6802 1 1. swapCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::swapCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(newCodePoints, 0, outOffset);
6803
    }
6804
6805
    // Count matches
6806
    //-----------------------------------------------------------------------
6807
    /**
6808
     * <p>Counts how many times the substring appears in the larger string.</p>
6809
     *
6810
     * <p>A {@code null} or empty ("") String input returns {@code 0}.</p>
6811
     *
6812
     * <pre>
6813
     * StringUtils.countMatches(null, *)       = 0
6814
     * StringUtils.countMatches("", *)         = 0
6815
     * StringUtils.countMatches("abba", null)  = 0
6816
     * StringUtils.countMatches("abba", "")    = 0
6817
     * StringUtils.countMatches("abba", "a")   = 2
6818
     * StringUtils.countMatches("abba", "ab")  = 1
6819
     * StringUtils.countMatches("abba", "xxx") = 0
6820
     * </pre>
6821
     *
6822
     * @param str  the CharSequence to check, may be null
6823
     * @param sub  the substring to count, may be null
6824
     * @return the number of occurrences, 0 if either CharSequence is {@code null}
6825
     * @since 3.0 Changed signature from countMatches(String, String) to countMatches(CharSequence, CharSequence)
6826
     */
6827
    public static int countMatches(final CharSequence str, final CharSequence sub) {
6828 2 1. countMatches : negated conditional → KILLED
2. countMatches : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(sub)) {
6829 1 1. countMatches : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return 0;
6830
        }
6831
        int count = 0;
6832
        int idx = 0;
6833 1 1. countMatches : negated conditional → KILLED
        while ((idx = CharSequenceUtils.indexOf(str, sub, idx)) != INDEX_NOT_FOUND) {
6834 1 1. countMatches : Changed increment from 1 to -1 → KILLED
            count++;
6835 1 1. countMatches : Replaced integer addition with subtraction → TIMED_OUT
            idx += sub.length();
6836
        }
6837 1 1. countMatches : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return count;
6838
    }
6839
6840
    /**
6841
     * <p>Counts how many times the char appears in the given string.</p>
6842
     *
6843
     * <p>A {@code null} or empty ("") String input returns {@code 0}.</p>
6844
     *
6845
     * <pre>
6846
     * StringUtils.countMatches(null, *)       = 0
6847
     * StringUtils.countMatches("", *)         = 0
6848
     * StringUtils.countMatches("abba", 0)  = 0
6849
     * StringUtils.countMatches("abba", 'a')   = 2
6850
     * StringUtils.countMatches("abba", 'b')  = 2
6851
     * StringUtils.countMatches("abba", 'x') = 0
6852
     * </pre>
6853
     *
6854
     * @param str  the CharSequence to check, may be null
6855
     * @param ch  the char to count
6856
     * @return the number of occurrences, 0 if the CharSequence is {@code null}
6857
     * @since 3.4
6858
     */
6859
    public static int countMatches(final CharSequence str, final char ch) {
6860 1 1. countMatches : negated conditional → KILLED
        if (isEmpty(str)) {
6861 1 1. countMatches : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return 0;
6862
        }
6863
        int count = 0;
6864
        // We could also call str.toCharArray() for faster look ups but that would generate more garbage.
6865 3 1. countMatches : changed conditional boundary → KILLED
2. countMatches : Changed increment from 1 to -1 → KILLED
3. countMatches : negated conditional → KILLED
        for (int i = 0; i < str.length(); i++) {
6866 1 1. countMatches : negated conditional → KILLED
            if (ch == str.charAt(i)) {
6867 1 1. countMatches : Changed increment from 1 to -1 → KILLED
                count++;
6868
            }
6869
        }
6870 1 1. countMatches : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return count;
6871
    }
6872
6873
    // Character Tests
6874
    //-----------------------------------------------------------------------
6875
    /**
6876
     * <p>Checks if the CharSequence contains only Unicode letters.</p>
6877
     *
6878
     * <p>{@code null} will return {@code false}.
6879
     * An empty CharSequence (length()=0) will return {@code false}.</p>
6880
     *
6881
     * <pre>
6882
     * StringUtils.isAlpha(null)   = false
6883
     * StringUtils.isAlpha("")     = false
6884
     * StringUtils.isAlpha("  ")   = false
6885
     * StringUtils.isAlpha("abc")  = true
6886
     * StringUtils.isAlpha("ab2c") = false
6887
     * StringUtils.isAlpha("ab-c") = false
6888
     * </pre>
6889
     *
6890
     * @param cs  the CharSequence to check, may be null
6891
     * @return {@code true} if only contains letters, and is non-null
6892
     * @since 3.0 Changed signature from isAlpha(String) to isAlpha(CharSequence)
6893
     * @since 3.0 Changed "" to return false and not true
6894
     */
6895
    public static boolean isAlpha(final CharSequence cs) {
6896 1 1. isAlpha : negated conditional → KILLED
        if (isEmpty(cs)) {
6897 1 1. isAlpha : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
6898
        }
6899
        final int sz = cs.length();
6900 3 1. isAlpha : changed conditional boundary → KILLED
2. isAlpha : Changed increment from 1 to -1 → KILLED
3. isAlpha : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
6901 1 1. isAlpha : negated conditional → KILLED
            if (Character.isLetter(cs.charAt(i)) == false) {
6902 1 1. isAlpha : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
6903
            }
6904
        }
6905 1 1. isAlpha : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
6906
    }
6907
6908
    /**
6909
     * <p>Checks if the CharSequence contains only Unicode letters and
6910
     * space (' ').</p>
6911
     *
6912
     * <p>{@code null} will return {@code false}
6913
     * An empty CharSequence (length()=0) will return {@code true}.</p>
6914
     *
6915
     * <pre>
6916
     * StringUtils.isAlphaSpace(null)   = false
6917
     * StringUtils.isAlphaSpace("")     = true
6918
     * StringUtils.isAlphaSpace("  ")   = true
6919
     * StringUtils.isAlphaSpace("abc")  = true
6920
     * StringUtils.isAlphaSpace("ab c") = true
6921
     * StringUtils.isAlphaSpace("ab2c") = false
6922
     * StringUtils.isAlphaSpace("ab-c") = false
6923
     * </pre>
6924
     *
6925
     * @param cs  the CharSequence to check, may be null
6926
     * @return {@code true} if only contains letters and space,
6927
     *  and is non-null
6928
     * @since 3.0 Changed signature from isAlphaSpace(String) to isAlphaSpace(CharSequence)
6929
     */
6930
    public static boolean isAlphaSpace(final CharSequence cs) {
6931 1 1. isAlphaSpace : negated conditional → KILLED
        if (cs == null) {
6932 1 1. isAlphaSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
6933
        }
6934
        final int sz = cs.length();
6935 3 1. isAlphaSpace : changed conditional boundary → KILLED
2. isAlphaSpace : Changed increment from 1 to -1 → KILLED
3. isAlphaSpace : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
6936 2 1. isAlphaSpace : negated conditional → KILLED
2. isAlphaSpace : negated conditional → KILLED
            if (Character.isLetter(cs.charAt(i)) == false && cs.charAt(i) != ' ') {
6937 1 1. isAlphaSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
6938
            }
6939
        }
6940 1 1. isAlphaSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
6941
    }
6942
6943
    /**
6944
     * <p>Checks if the CharSequence contains only Unicode letters or digits.</p>
6945
     *
6946
     * <p>{@code null} will return {@code false}.
6947
     * An empty CharSequence (length()=0) will return {@code false}.</p>
6948
     *
6949
     * <pre>
6950
     * StringUtils.isAlphanumeric(null)   = false
6951
     * StringUtils.isAlphanumeric("")     = false
6952
     * StringUtils.isAlphanumeric("  ")   = false
6953
     * StringUtils.isAlphanumeric("abc")  = true
6954
     * StringUtils.isAlphanumeric("ab c") = false
6955
     * StringUtils.isAlphanumeric("ab2c") = true
6956
     * StringUtils.isAlphanumeric("ab-c") = false
6957
     * </pre>
6958
     *
6959
     * @param cs  the CharSequence to check, may be null
6960
     * @return {@code true} if only contains letters or digits,
6961
     *  and is non-null
6962
     * @since 3.0 Changed signature from isAlphanumeric(String) to isAlphanumeric(CharSequence)
6963
     * @since 3.0 Changed "" to return false and not true
6964
     */
6965
    public static boolean isAlphanumeric(final CharSequence cs) {
6966 1 1. isAlphanumeric : negated conditional → KILLED
        if (isEmpty(cs)) {
6967 1 1. isAlphanumeric : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
6968
        }
6969
        final int sz = cs.length();
6970 3 1. isAlphanumeric : changed conditional boundary → KILLED
2. isAlphanumeric : Changed increment from 1 to -1 → KILLED
3. isAlphanumeric : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
6971 1 1. isAlphanumeric : negated conditional → KILLED
            if (Character.isLetterOrDigit(cs.charAt(i)) == false) {
6972 1 1. isAlphanumeric : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
6973
            }
6974
        }
6975 1 1. isAlphanumeric : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
6976
    }
6977
6978
    /**
6979
     * <p>Checks if the CharSequence contains only Unicode letters, digits
6980
     * or space ({@code ' '}).</p>
6981
     *
6982
     * <p>{@code null} will return {@code false}.
6983
     * An empty CharSequence (length()=0) will return {@code true}.</p>
6984
     *
6985
     * <pre>
6986
     * StringUtils.isAlphanumericSpace(null)   = false
6987
     * StringUtils.isAlphanumericSpace("")     = true
6988
     * StringUtils.isAlphanumericSpace("  ")   = true
6989
     * StringUtils.isAlphanumericSpace("abc")  = true
6990
     * StringUtils.isAlphanumericSpace("ab c") = true
6991
     * StringUtils.isAlphanumericSpace("ab2c") = true
6992
     * StringUtils.isAlphanumericSpace("ab-c") = false
6993
     * </pre>
6994
     *
6995
     * @param cs  the CharSequence to check, may be null
6996
     * @return {@code true} if only contains letters, digits or space,
6997
     *  and is non-null
6998
     * @since 3.0 Changed signature from isAlphanumericSpace(String) to isAlphanumericSpace(CharSequence)
6999
     */
7000
    public static boolean isAlphanumericSpace(final CharSequence cs) {
7001 1 1. isAlphanumericSpace : negated conditional → KILLED
        if (cs == null) {
7002 1 1. isAlphanumericSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
7003
        }
7004
        final int sz = cs.length();
7005 3 1. isAlphanumericSpace : changed conditional boundary → KILLED
2. isAlphanumericSpace : Changed increment from 1 to -1 → KILLED
3. isAlphanumericSpace : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
7006 2 1. isAlphanumericSpace : negated conditional → KILLED
2. isAlphanumericSpace : negated conditional → KILLED
            if (Character.isLetterOrDigit(cs.charAt(i)) == false && cs.charAt(i) != ' ') {
7007 1 1. isAlphanumericSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
7008
            }
7009
        }
7010 1 1. isAlphanumericSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
7011
    }
7012
7013
    /**
7014
     * <p>Checks if the CharSequence contains only ASCII printable characters.</p>
7015
     *
7016
     * <p>{@code null} will return {@code false}.
7017
     * An empty CharSequence (length()=0) will return {@code true}.</p>
7018
     *
7019
     * <pre>
7020
     * StringUtils.isAsciiPrintable(null)     = false
7021
     * StringUtils.isAsciiPrintable("")       = true
7022
     * StringUtils.isAsciiPrintable(" ")      = true
7023
     * StringUtils.isAsciiPrintable("Ceki")   = true
7024
     * StringUtils.isAsciiPrintable("ab2c")   = true
7025
     * StringUtils.isAsciiPrintable("!ab-c~") = true
7026
     * StringUtils.isAsciiPrintable("\u0020") = true
7027
     * StringUtils.isAsciiPrintable("\u0021") = true
7028
     * StringUtils.isAsciiPrintable("\u007e") = true
7029
     * StringUtils.isAsciiPrintable("\u007f") = false
7030
     * StringUtils.isAsciiPrintable("Ceki G\u00fclc\u00fc") = false
7031
     * </pre>
7032
     *
7033
     * @param cs the CharSequence to check, may be null
7034
     * @return {@code true} if every character is in the range
7035
     *  32 thru 126
7036
     * @since 2.1
7037
     * @since 3.0 Changed signature from isAsciiPrintable(String) to isAsciiPrintable(CharSequence)
7038
     */
7039
    public static boolean isAsciiPrintable(final CharSequence cs) {
7040 1 1. isAsciiPrintable : negated conditional → KILLED
        if (cs == null) {
7041 1 1. isAsciiPrintable : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
7042
        }
7043
        final int sz = cs.length();
7044 3 1. isAsciiPrintable : changed conditional boundary → KILLED
2. isAsciiPrintable : Changed increment from 1 to -1 → KILLED
3. isAsciiPrintable : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
7045 1 1. isAsciiPrintable : negated conditional → KILLED
            if (CharUtils.isAsciiPrintable(cs.charAt(i)) == false) {
7046 1 1. isAsciiPrintable : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
7047
            }
7048
        }
7049 1 1. isAsciiPrintable : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
7050
    }
7051
7052
    /**
7053
     * <p>Checks if the CharSequence contains only Unicode digits.
7054
     * A decimal point is not a Unicode digit and returns false.</p>
7055
     *
7056
     * <p>{@code null} will return {@code false}.
7057
     * An empty CharSequence (length()=0) will return {@code false}.</p>
7058
     *
7059
     * <p>Note that the method does not allow for a leading sign, either positive or negative.
7060
     * Also, if a String passes the numeric test, it may still generate a NumberFormatException
7061
     * when parsed by Integer.parseInt or Long.parseLong, e.g. if the value is outside the range
7062
     * for int or long respectively.</p>
7063
     *
7064
     * <pre>
7065
     * StringUtils.isNumeric(null)   = false
7066
     * StringUtils.isNumeric("")     = false
7067
     * StringUtils.isNumeric("  ")   = false
7068
     * StringUtils.isNumeric("123")  = true
7069
     * StringUtils.isNumeric("\u0967\u0968\u0969")  = true
7070
     * StringUtils.isNumeric("12 3") = false
7071
     * StringUtils.isNumeric("ab2c") = false
7072
     * StringUtils.isNumeric("12-3") = false
7073
     * StringUtils.isNumeric("12.3") = false
7074
     * StringUtils.isNumeric("-123") = false
7075
     * StringUtils.isNumeric("+123") = false
7076
     * </pre>
7077
     *
7078
     * @param cs  the CharSequence to check, may be null
7079
     * @return {@code true} if only contains digits, and is non-null
7080
     * @since 3.0 Changed signature from isNumeric(String) to isNumeric(CharSequence)
7081
     * @since 3.0 Changed "" to return false and not true
7082
     */
7083
    public static boolean isNumeric(final CharSequence cs) {
7084 1 1. isNumeric : negated conditional → KILLED
        if (isEmpty(cs)) {
7085 1 1. isNumeric : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
7086
        }
7087
        final int sz = cs.length();
7088 3 1. isNumeric : changed conditional boundary → KILLED
2. isNumeric : Changed increment from 1 to -1 → KILLED
3. isNumeric : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
7089 1 1. isNumeric : negated conditional → KILLED
            if (!Character.isDigit(cs.charAt(i))) {
7090 1 1. isNumeric : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
7091
            }
7092
        }
7093 1 1. isNumeric : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
7094
    }
7095
7096
    /**
7097
     * <p>Checks if the CharSequence contains only Unicode digits or space
7098
     * ({@code ' '}).
7099
     * A decimal point is not a Unicode digit and returns false.</p>
7100
     *
7101
     * <p>{@code null} will return {@code false}.
7102
     * An empty CharSequence (length()=0) will return {@code true}.</p>
7103
     *
7104
     * <pre>
7105
     * StringUtils.isNumericSpace(null)   = false
7106
     * StringUtils.isNumericSpace("")     = true
7107
     * StringUtils.isNumericSpace("  ")   = true
7108
     * StringUtils.isNumericSpace("123")  = true
7109
     * StringUtils.isNumericSpace("12 3") = true
7110
     * StringUtils.isNumeric("\u0967\u0968\u0969")  = true
7111
     * StringUtils.isNumeric("\u0967\u0968 \u0969")  = true
7112
     * StringUtils.isNumericSpace("ab2c") = false
7113
     * StringUtils.isNumericSpace("12-3") = false
7114
     * StringUtils.isNumericSpace("12.3") = false
7115
     * </pre>
7116
     *
7117
     * @param cs  the CharSequence to check, may be null
7118
     * @return {@code true} if only contains digits or space,
7119
     *  and is non-null
7120
     * @since 3.0 Changed signature from isNumericSpace(String) to isNumericSpace(CharSequence)
7121
     */
7122
    public static boolean isNumericSpace(final CharSequence cs) {
7123 1 1. isNumericSpace : negated conditional → KILLED
        if (cs == null) {
7124 1 1. isNumericSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
7125
        }
7126
        final int sz = cs.length();
7127 3 1. isNumericSpace : changed conditional boundary → KILLED
2. isNumericSpace : Changed increment from 1 to -1 → KILLED
3. isNumericSpace : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
7128 2 1. isNumericSpace : negated conditional → KILLED
2. isNumericSpace : negated conditional → KILLED
            if (Character.isDigit(cs.charAt(i)) == false && cs.charAt(i) != ' ') {
7129 1 1. isNumericSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
7130
            }
7131
        }
7132 1 1. isNumericSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
7133
    }
7134
7135
    /**
7136
     * <p>Checks if the CharSequence contains only whitespace.</p>
7137
     * 
7138
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
7139
     *
7140
     * <p>{@code null} will return {@code false}.
7141
     * An empty CharSequence (length()=0) will return {@code true}.</p>
7142
     *
7143
     * <pre>
7144
     * StringUtils.isWhitespace(null)   = false
7145
     * StringUtils.isWhitespace("")     = true
7146
     * StringUtils.isWhitespace("  ")   = true
7147
     * StringUtils.isWhitespace("abc")  = false
7148
     * StringUtils.isWhitespace("ab2c") = false
7149
     * StringUtils.isWhitespace("ab-c") = false
7150
     * </pre>
7151
     *
7152
     * @param cs  the CharSequence to check, may be null
7153
     * @return {@code true} if only contains whitespace, and is non-null
7154
     * @since 2.0
7155
     * @since 3.0 Changed signature from isWhitespace(String) to isWhitespace(CharSequence)
7156
     */
7157
    public static boolean isWhitespace(final CharSequence cs) {
7158 1 1. isWhitespace : negated conditional → KILLED
        if (cs == null) {
7159 1 1. isWhitespace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
7160
        }
7161
        final int sz = cs.length();
7162 3 1. isWhitespace : changed conditional boundary → KILLED
2. isWhitespace : Changed increment from 1 to -1 → KILLED
3. isWhitespace : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
7163 1 1. isWhitespace : negated conditional → KILLED
            if (Character.isWhitespace(cs.charAt(i)) == false) {
7164 1 1. isWhitespace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
7165
            }
7166
        }
7167 1 1. isWhitespace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
7168
    }
7169
7170
    /**
7171
     * <p>Checks if the CharSequence contains only lowercase characters.</p>
7172
     *
7173
     * <p>{@code null} will return {@code false}.
7174
     * An empty CharSequence (length()=0) will return {@code false}.</p>
7175
     *
7176
     * <pre>
7177
     * StringUtils.isAllLowerCase(null)   = false
7178
     * StringUtils.isAllLowerCase("")     = false
7179
     * StringUtils.isAllLowerCase("  ")   = false
7180
     * StringUtils.isAllLowerCase("abc")  = true
7181
     * StringUtils.isAllLowerCase("abC")  = false
7182
     * StringUtils.isAllLowerCase("ab c") = false
7183
     * StringUtils.isAllLowerCase("ab1c") = false
7184
     * StringUtils.isAllLowerCase("ab/c") = false
7185
     * </pre>
7186
     *
7187
     * @param cs  the CharSequence to check, may be null
7188
     * @return {@code true} if only contains lowercase characters, and is non-null
7189
     * @since 2.5
7190
     * @since 3.0 Changed signature from isAllLowerCase(String) to isAllLowerCase(CharSequence)
7191
     */
7192
    public static boolean isAllLowerCase(final CharSequence cs) {
7193 2 1. isAllLowerCase : negated conditional → KILLED
2. isAllLowerCase : negated conditional → KILLED
        if (cs == null || isEmpty(cs)) {
7194 1 1. isAllLowerCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
7195
        }
7196
        final int sz = cs.length();
7197 3 1. isAllLowerCase : changed conditional boundary → KILLED
2. isAllLowerCase : Changed increment from 1 to -1 → KILLED
3. isAllLowerCase : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
7198 1 1. isAllLowerCase : negated conditional → KILLED
            if (Character.isLowerCase(cs.charAt(i)) == false) {
7199 1 1. isAllLowerCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
7200
            }
7201
        }
7202 1 1. isAllLowerCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
7203
    }
7204
7205
    /**
7206
     * <p>Checks if the CharSequence contains only uppercase characters.</p>
7207
     *
7208
     * <p>{@code null} will return {@code false}.
7209
     * An empty String (length()=0) will return {@code false}.</p>
7210
     *
7211
     * <pre>
7212
     * StringUtils.isAllUpperCase(null)   = false
7213
     * StringUtils.isAllUpperCase("")     = false
7214
     * StringUtils.isAllUpperCase("  ")   = false
7215
     * StringUtils.isAllUpperCase("ABC")  = true
7216
     * StringUtils.isAllUpperCase("aBC")  = false
7217
     * StringUtils.isAllUpperCase("A C")  = false
7218
     * StringUtils.isAllUpperCase("A1C")  = false
7219
     * StringUtils.isAllUpperCase("A/C")  = false
7220
     * </pre>
7221
     *
7222
     * @param cs the CharSequence to check, may be null
7223
     * @return {@code true} if only contains uppercase characters, and is non-null
7224
     * @since 2.5
7225
     * @since 3.0 Changed signature from isAllUpperCase(String) to isAllUpperCase(CharSequence)
7226
     */
7227
    public static boolean isAllUpperCase(final CharSequence cs) {
7228 2 1. isAllUpperCase : negated conditional → KILLED
2. isAllUpperCase : negated conditional → KILLED
        if (cs == null || isEmpty(cs)) {
7229 1 1. isAllUpperCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
7230
        }
7231
        final int sz = cs.length();
7232 3 1. isAllUpperCase : changed conditional boundary → KILLED
2. isAllUpperCase : Changed increment from 1 to -1 → KILLED
3. isAllUpperCase : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
7233 1 1. isAllUpperCase : negated conditional → KILLED
            if (Character.isUpperCase(cs.charAt(i)) == false) {
7234 1 1. isAllUpperCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
7235
            }
7236
        }
7237 1 1. isAllUpperCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
7238
    }
7239
7240
    // Defaults
7241
    //-----------------------------------------------------------------------
7242
    /**
7243
     * <p>Returns either the passed in String,
7244
     * or if the String is {@code null}, an empty String ("").</p>
7245
     *
7246
     * <pre>
7247
     * StringUtils.defaultString(null)  = ""
7248
     * StringUtils.defaultString("")    = ""
7249
     * StringUtils.defaultString("bat") = "bat"
7250
     * </pre>
7251
     *
7252
     * @see ObjectUtils#toString(Object)
7253
     * @see String#valueOf(Object)
7254
     * @param str  the String to check, may be null
7255
     * @return the passed in String, or the empty String if it
7256
     *  was {@code null}
7257
     */
7258
    public static String defaultString(final String str) {
7259 2 1. defaultString : negated conditional → KILLED
2. defaultString : mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultString to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str == null ? EMPTY : str;
7260
    }
7261
7262
    /**
7263
     * <p>Returns either the passed in String, or if the String is
7264
     * {@code null}, the value of {@code defaultStr}.</p>
7265
     *
7266
     * <pre>
7267
     * StringUtils.defaultString(null, "NULL")  = "NULL"
7268
     * StringUtils.defaultString("", "NULL")    = ""
7269
     * StringUtils.defaultString("bat", "NULL") = "bat"
7270
     * </pre>
7271
     *
7272
     * @see ObjectUtils#toString(Object,String)
7273
     * @see String#valueOf(Object)
7274
     * @param str  the String to check, may be null
7275
     * @param defaultStr  the default String to return
7276
     *  if the input is {@code null}, may be null
7277
     * @return the passed in String, or the default if it was {@code null}
7278
     */
7279
    public static String defaultString(final String str, final String defaultStr) {
7280 2 1. defaultString : negated conditional → KILLED
2. defaultString : mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultString to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str == null ? defaultStr : str;
7281
    }
7282
7283
    /**
7284
     * <p>Returns either the passed in CharSequence, or if the CharSequence is
7285
     * whitespace, empty ("") or {@code null}, the value of {@code defaultStr}.</p>
7286
     * 
7287
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
7288
     *
7289
     * <pre>
7290
     * StringUtils.defaultIfBlank(null, "NULL")  = "NULL"
7291
     * StringUtils.defaultIfBlank("", "NULL")    = "NULL"
7292
     * StringUtils.defaultIfBlank(" ", "NULL")   = "NULL"
7293
     * StringUtils.defaultIfBlank("bat", "NULL") = "bat"
7294
     * StringUtils.defaultIfBlank("", null)      = null
7295
     * </pre>
7296
     * @param <T> the specific kind of CharSequence
7297
     * @param str the CharSequence to check, may be null
7298
     * @param defaultStr  the default CharSequence to return
7299
     *  if the input is whitespace, empty ("") or {@code null}, may be null
7300
     * @return the passed in CharSequence, or the default
7301
     * @see StringUtils#defaultString(String, String)
7302
     */
7303
    public static <T extends CharSequence> T defaultIfBlank(final T str, final T defaultStr) {
7304 2 1. defaultIfBlank : negated conditional → KILLED
2. defaultIfBlank : mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultIfBlank to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return isBlank(str) ? defaultStr : str;
7305
    }
7306
7307
    /**
7308
     * <p>Returns either the passed in CharSequence, or if the CharSequence is
7309
     * empty or {@code null}, the value of {@code defaultStr}.</p>
7310
     *
7311
     * <pre>
7312
     * StringUtils.defaultIfEmpty(null, "NULL")  = "NULL"
7313
     * StringUtils.defaultIfEmpty("", "NULL")    = "NULL"
7314
     * StringUtils.defaultIfEmpty(" ", "NULL")   = " "
7315
     * StringUtils.defaultIfEmpty("bat", "NULL") = "bat"
7316
     * StringUtils.defaultIfEmpty("", null)      = null
7317
     * </pre>
7318
     * @param <T> the specific kind of CharSequence
7319
     * @param str  the CharSequence to check, may be null
7320
     * @param defaultStr  the default CharSequence to return
7321
     *  if the input is empty ("") or {@code null}, may be null
7322
     * @return the passed in CharSequence, or the default
7323
     * @see StringUtils#defaultString(String, String)
7324
     */
7325
    public static <T extends CharSequence> T defaultIfEmpty(final T str, final T defaultStr) {
7326 2 1. defaultIfEmpty : negated conditional → KILLED
2. defaultIfEmpty : mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultIfEmpty to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return isEmpty(str) ? defaultStr : str;
7327
    }
7328
7329
    // Rotating (circular shift)
7330
    //-----------------------------------------------------------------------
7331
    /**
7332
     * <p>Rotate (circular shift) a String of {@code shift} characters.</p>
7333
     * <ul>
7334
     *  <li>If {@code shift > 0}, right circular shift (ex : ABCDEF =&gt; FABCDE)</li>
7335
     *  <li>If {@code shift < 0}, left circular shift (ex : ABCDEF =&gt; BCDEFA)</li>
7336
     * </ul>
7337
     *
7338
     * <pre>
7339
     * StringUtils.rotate(null, *)        = null
7340
     * StringUtils.rotate("", *)          = ""
7341
     * StringUtils.rotate("abcdefg", 0)   = "abcdefg"
7342
     * StringUtils.rotate("abcdefg", 2)   = "fgabcde"
7343
     * StringUtils.rotate("abcdefg", -2)  = "cdefgab"
7344
     * StringUtils.rotate("abcdefg", 7)   = "abcdefg"
7345
     * StringUtils.rotate("abcdefg", -7)  = "abcdefg"
7346
     * StringUtils.rotate("abcdefg", 9)   = "fgabcde"
7347
     * StringUtils.rotate("abcdefg", -9)  = "cdefgab"
7348
     * </pre>
7349
     *
7350
     * @param str  the String to rotate, may be null
7351
     * @param shift  number of time to shift (positive : right shift, negative : left shift)
7352
     * @return the rotated String,
7353
     *          or the original String if {@code shift == 0},
7354
     *          or {@code null} if null String input
7355
     * @since 3.5
7356
     */
7357
    public static String rotate(final String str, final int shift) {
7358 1 1. rotate : negated conditional → KILLED
        if (str == null) {
7359 1 1. rotate : mutated return of Object value for org/apache/commons/lang3/StringUtils::rotate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
7360
        }
7361
7362
        final int strLen = str.length();
7363 4 1. rotate : Replaced integer modulus with multiplication → SURVIVED
2. rotate : negated conditional → KILLED
3. rotate : negated conditional → KILLED
4. rotate : negated conditional → KILLED
        if (shift == 0 || strLen == 0 || shift % strLen == 0) {
7364 1 1. rotate : mutated return of Object value for org/apache/commons/lang3/StringUtils::rotate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
7365
        }
7366
7367
        final StringBuilder builder = new StringBuilder(strLen);
7368 2 1. rotate : removed negation → KILLED
2. rotate : Replaced integer modulus with multiplication → KILLED
        final int offset = - (shift % strLen);
7369
        builder.append(substring(str, offset));
7370
        builder.append(substring(str, 0, offset));
7371 1 1. rotate : mutated return of Object value for org/apache/commons/lang3/StringUtils::rotate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return builder.toString();
7372
    }
7373
7374
    // Reversing
7375
    //-----------------------------------------------------------------------
7376
    /**
7377
     * <p>Reverses a String as per {@link StringBuilder#reverse()}.</p>
7378
     *
7379
     * <p>A {@code null} String returns {@code null}.</p>
7380
     *
7381
     * <pre>
7382
     * StringUtils.reverse(null)  = null
7383
     * StringUtils.reverse("")    = ""
7384
     * StringUtils.reverse("bat") = "tab"
7385
     * </pre>
7386
     *
7387
     * @param str  the String to reverse, may be null
7388
     * @return the reversed String, {@code null} if null String input
7389
     */
7390
    public static String reverse(final String str) {
7391 1 1. reverse : negated conditional → KILLED
        if (str == null) {
7392 1 1. reverse : mutated return of Object value for org/apache/commons/lang3/StringUtils::reverse to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
7393
        }
7394 1 1. reverse : mutated return of Object value for org/apache/commons/lang3/StringUtils::reverse to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new StringBuilder(str).reverse().toString();
7395
    }
7396
7397
    /**
7398
     * <p>Reverses a String that is delimited by a specific character.</p>
7399
     *
7400
     * <p>The Strings between the delimiters are not reversed.
7401
     * Thus java.lang.String becomes String.lang.java (if the delimiter
7402
     * is {@code '.'}).</p>
7403
     *
7404
     * <pre>
7405
     * StringUtils.reverseDelimited(null, *)      = null
7406
     * StringUtils.reverseDelimited("", *)        = ""
7407
     * StringUtils.reverseDelimited("a.b.c", 'x') = "a.b.c"
7408
     * StringUtils.reverseDelimited("a.b.c", ".") = "c.b.a"
7409
     * </pre>
7410
     *
7411
     * @param str  the String to reverse, may be null
7412
     * @param separatorChar  the separator character to use
7413
     * @return the reversed String, {@code null} if null String input
7414
     * @since 2.0
7415
     */
7416
    public static String reverseDelimited(final String str, final char separatorChar) {
7417 1 1. reverseDelimited : negated conditional → KILLED
        if (str == null) {
7418 1 1. reverseDelimited : mutated return of Object value for org/apache/commons/lang3/StringUtils::reverseDelimited to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
7419
        }
7420
        // could implement manually, but simple way is to reuse other,
7421
        // probably slower, methods.
7422
        final String[] strs = split(str, separatorChar);
7423 1 1. reverseDelimited : removed call to org/apache/commons/lang3/ArrayUtils::reverse → KILLED
        ArrayUtils.reverse(strs);
7424 1 1. reverseDelimited : mutated return of Object value for org/apache/commons/lang3/StringUtils::reverseDelimited to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(strs, separatorChar);
7425
    }
7426
7427
    // Abbreviating
7428
    //-----------------------------------------------------------------------
7429
    /**
7430
     * <p>Abbreviates a String using ellipses. This will turn
7431
     * "Now is the time for all good men" into "Now is the time for..."</p>
7432
     *
7433
     * <p>Specifically:</p>
7434
     * <ul>
7435
     *   <li>If the number of characters in {@code str} is less than or equal to 
7436
     *       {@code maxWidth}, return {@code str}.</li>
7437
     *   <li>Else abbreviate it to {@code (substring(str, 0, max-3) + "...")}.</li>
7438
     *   <li>If {@code maxWidth} is less than {@code 4}, throw an
7439
     *       {@code IllegalArgumentException}.</li>
7440
     *   <li>In no case will it return a String of length greater than
7441
     *       {@code maxWidth}.</li>
7442
     * </ul>
7443
     *
7444
     * <pre>
7445
     * StringUtils.abbreviate(null, *)      = null
7446
     * StringUtils.abbreviate("", 4)        = ""
7447
     * StringUtils.abbreviate("abcdefg", 6) = "abc..."
7448
     * StringUtils.abbreviate("abcdefg", 7) = "abcdefg"
7449
     * StringUtils.abbreviate("abcdefg", 8) = "abcdefg"
7450
     * StringUtils.abbreviate("abcdefg", 4) = "a..."
7451
     * StringUtils.abbreviate("abcdefg", 3) = IllegalArgumentException
7452
     * </pre>
7453
     *
7454
     * @param str  the String to check, may be null
7455
     * @param maxWidth  maximum length of result String, must be at least 4
7456
     * @return abbreviated String, {@code null} if null String input
7457
     * @throws IllegalArgumentException if the width is too small
7458
     * @since 2.0
7459
     */
7460
    public static String abbreviate(final String str, final int maxWidth) {
7461
        final String defaultAbbrevMarker = "...";
7462 1 1. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return abbreviate(str, defaultAbbrevMarker, 0, maxWidth);
7463
    }
7464
7465
    /**
7466
     * <p>Abbreviates a String using ellipses. This will turn
7467
     * "Now is the time for all good men" into "...is the time for..."</p>
7468
     *
7469
     * <p>Works like {@code abbreviate(String, int)}, but allows you to specify
7470
     * a "left edge" offset.  Note that this left edge is not necessarily going to
7471
     * be the leftmost character in the result, or the first character following the
7472
     * ellipses, but it will appear somewhere in the result.
7473
     *
7474
     * <p>In no case will it return a String of length greater than
7475
     * {@code maxWidth}.</p>
7476
     *
7477
     * <pre>
7478
     * StringUtils.abbreviate(null, *, *)                = null
7479
     * StringUtils.abbreviate("", 0, 4)                  = ""
7480
     * StringUtils.abbreviate("abcdefghijklmno", -1, 10) = "abcdefg..."
7481
     * StringUtils.abbreviate("abcdefghijklmno", 0, 10)  = "abcdefg..."
7482
     * StringUtils.abbreviate("abcdefghijklmno", 1, 10)  = "abcdefg..."
7483
     * StringUtils.abbreviate("abcdefghijklmno", 4, 10)  = "abcdefg..."
7484
     * StringUtils.abbreviate("abcdefghijklmno", 5, 10)  = "...fghi..."
7485
     * StringUtils.abbreviate("abcdefghijklmno", 6, 10)  = "...ghij..."
7486
     * StringUtils.abbreviate("abcdefghijklmno", 8, 10)  = "...ijklmno"
7487
     * StringUtils.abbreviate("abcdefghijklmno", 10, 10) = "...ijklmno"
7488
     * StringUtils.abbreviate("abcdefghijklmno", 12, 10) = "...ijklmno"
7489
     * StringUtils.abbreviate("abcdefghij", 0, 3)        = IllegalArgumentException
7490
     * StringUtils.abbreviate("abcdefghij", 5, 6)        = IllegalArgumentException
7491
     * </pre>
7492
     *
7493
     * @param str  the String to check, may be null
7494
     * @param offset  left edge of source String
7495
     * @param maxWidth  maximum length of result String, must be at least 4
7496
     * @return abbreviated String, {@code null} if null String input
7497
     * @throws IllegalArgumentException if the width is too small
7498
     * @since 2.0
7499
     */
7500
    public static String abbreviate(final String str, final int offset, final int maxWidth) {
7501
        final String defaultAbbrevMarker = "...";
7502 1 1. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return abbreviate(str, defaultAbbrevMarker, offset, maxWidth);
7503
    }
7504
7505
    /**
7506
     * <p>Abbreviates a String using another given String as replacement marker. This will turn
7507
     * "Now is the time for all good men" into "Now is the time for..." if "..." was defined
7508
     * as the replacement marker.</p>
7509
     *
7510
     * <p>Specifically:</p>
7511
     * <ul>
7512
     *   <li>If the number of characters in {@code str} is less than or equal to 
7513
     *       {@code maxWidth}, return {@code str}.</li>
7514
     *   <li>Else abbreviate it to {@code (substring(str, 0, max-abbrevMarker.length) + abbrevMarker)}.</li>
7515
     *   <li>If {@code maxWidth} is less than {@code abbrevMarker.length + 1}, throw an
7516
     *       {@code IllegalArgumentException}.</li>
7517
     *   <li>In no case will it return a String of length greater than
7518
     *       {@code maxWidth}.</li>
7519
     * </ul>
7520
     *
7521
     * <pre>
7522
     * StringUtils.abbreviate(null, "...", *)      = null
7523
     * StringUtils.abbreviate("abcdefg", null, *)  = "abcdefg"
7524
     * StringUtils.abbreviate("", "...", 4)        = ""
7525
     * StringUtils.abbreviate("abcdefg", ".", 5)   = "abcd."
7526
     * StringUtils.abbreviate("abcdefg", ".", 7)   = "abcdefg"
7527
     * StringUtils.abbreviate("abcdefg", ".", 8)   = "abcdefg"
7528
     * StringUtils.abbreviate("abcdefg", "..", 4)  = "ab.."
7529
     * StringUtils.abbreviate("abcdefg", "..", 3)  = "a.."
7530
     * StringUtils.abbreviate("abcdefg", "..", 2)  = IllegalArgumentException
7531
     * StringUtils.abbreviate("abcdefg", "...", 3) = IllegalArgumentException
7532
     * </pre>
7533
     *
7534
     * @param str  the String to check, may be null
7535
     * @param abbrevMarker  the String used as replacement marker
7536
     * @param maxWidth  maximum length of result String, must be at least {@code abbrevMarker.length + 1}
7537
     * @return abbreviated String, {@code null} if null String input
7538
     * @throws IllegalArgumentException if the width is too small
7539
     * @since 3.5
7540
     */
7541
    public static String abbreviate(final String str, final String abbrevMarker, final int maxWidth) {
7542 1 1. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return abbreviate(str, abbrevMarker, 0, maxWidth);
7543
    }
7544
7545
    /**
7546
     * <p>Abbreviates a String using a given replacement marker. This will turn
7547
     * "Now is the time for all good men" into "...is the time for..." if "..." was defined
7548
     * as the replacement marker.</p>
7549
     *
7550
     * <p>Works like {@code abbreviate(String, String, int)}, but allows you to specify
7551
     * a "left edge" offset.  Note that this left edge is not necessarily going to
7552
     * be the leftmost character in the result, or the first character following the
7553
     * replacement marker, but it will appear somewhere in the result.
7554
     *
7555
     * <p>In no case will it return a String of length greater than {@code maxWidth}.</p>
7556
     *
7557
     * <pre>
7558
     * StringUtils.abbreviate(null, null, *, *)                 = null
7559
     * StringUtils.abbreviate("abcdefghijklmno", null, *, *)    = "abcdefghijklmno"
7560
     * StringUtils.abbreviate("", "...", 0, 4)                  = ""
7561
     * StringUtils.abbreviate("abcdefghijklmno", "---", -1, 10) = "abcdefg---"
7562
     * StringUtils.abbreviate("abcdefghijklmno", ",", 0, 10)    = "abcdefghi,"
7563
     * StringUtils.abbreviate("abcdefghijklmno", ",", 1, 10)    = "abcdefghi,"
7564
     * StringUtils.abbreviate("abcdefghijklmno", ",", 2, 10)    = "abcdefghi,"
7565
     * StringUtils.abbreviate("abcdefghijklmno", "::", 4, 10)   = "::efghij::"
7566
     * StringUtils.abbreviate("abcdefghijklmno", "...", 6, 10)  = "...ghij..."
7567
     * StringUtils.abbreviate("abcdefghijklmno", "*", 9, 10)    = "*ghijklmno"
7568
     * StringUtils.abbreviate("abcdefghijklmno", "'", 10, 10)   = "'ghijklmno"
7569
     * StringUtils.abbreviate("abcdefghijklmno", "!", 12, 10)   = "!ghijklmno"
7570
     * StringUtils.abbreviate("abcdefghij", "abra", 0, 4)       = IllegalArgumentException
7571
     * StringUtils.abbreviate("abcdefghij", "...", 5, 6)        = IllegalArgumentException
7572
     * </pre>
7573
     *
7574
     * @param str  the String to check, may be null
7575
     * @param abbrevMarker  the String used as replacement marker
7576
     * @param offset  left edge of source String
7577
     * @param maxWidth  maximum length of result String, must be at least 4
7578
     * @return abbreviated String, {@code null} if null String input
7579
     * @throws IllegalArgumentException if the width is too small
7580
     * @since 3.5
7581
     */
7582
    public static String abbreviate(final String str, final String abbrevMarker, int offset, final int maxWidth) {
7583 2 1. abbreviate : negated conditional → KILLED
2. abbreviate : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(abbrevMarker)) {
7584 1 1. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
7585
        }
7586
7587
        final int abbrevMarkerLength = abbrevMarker.length();
7588 1 1. abbreviate : Replaced integer addition with subtraction → KILLED
        final int minAbbrevWidth = abbrevMarkerLength + 1;
7589 2 1. abbreviate : Replaced integer addition with subtraction → SURVIVED
2. abbreviate : Replaced integer addition with subtraction → SURVIVED
        final int minAbbrevWidthOffset = abbrevMarkerLength + abbrevMarkerLength + 1;
7590
7591 2 1. abbreviate : changed conditional boundary → KILLED
2. abbreviate : negated conditional → KILLED
        if (maxWidth < minAbbrevWidth) {
7592
            throw new IllegalArgumentException(String.format("Minimum abbreviation width is %d", minAbbrevWidth));
7593
        }
7594 2 1. abbreviate : changed conditional boundary → KILLED
2. abbreviate : negated conditional → KILLED
        if (str.length() <= maxWidth) {
7595 1 1. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
7596
        }
7597 2 1. abbreviate : changed conditional boundary → SURVIVED
2. abbreviate : negated conditional → KILLED
        if (offset > str.length()) {
7598
            offset = str.length();
7599
        }
7600 4 1. abbreviate : changed conditional boundary → SURVIVED
2. abbreviate : Replaced integer subtraction with addition → SURVIVED
3. abbreviate : Replaced integer subtraction with addition → KILLED
4. abbreviate : negated conditional → KILLED
        if (str.length() - offset < maxWidth - abbrevMarkerLength) {
7601 2 1. abbreviate : Replaced integer subtraction with addition → SURVIVED
2. abbreviate : Replaced integer subtraction with addition → KILLED
            offset = str.length() - (maxWidth - abbrevMarkerLength);
7602
        }
7603 3 1. abbreviate : changed conditional boundary → KILLED
2. abbreviate : Replaced integer addition with subtraction → KILLED
3. abbreviate : negated conditional → KILLED
        if (offset <= abbrevMarkerLength+1) {
7604 2 1. abbreviate : Replaced integer subtraction with addition → KILLED
2. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(0, maxWidth - abbrevMarkerLength) + abbrevMarker;
7605
        }
7606 2 1. abbreviate : changed conditional boundary → SURVIVED
2. abbreviate : negated conditional → KILLED
        if (maxWidth < minAbbrevWidthOffset) {
7607
            throw new IllegalArgumentException(String.format("Minimum abbreviation width with offset is %d", minAbbrevWidthOffset));
7608
        }
7609 4 1. abbreviate : changed conditional boundary → SURVIVED
2. abbreviate : Replaced integer addition with subtraction → SURVIVED
3. abbreviate : Replaced integer subtraction with addition → KILLED
4. abbreviate : negated conditional → KILLED
        if (offset + maxWidth - abbrevMarkerLength < str.length()) {
7610 2 1. abbreviate : Replaced integer subtraction with addition → KILLED
2. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return abbrevMarker + abbreviate(str.substring(offset), abbrevMarker, maxWidth - abbrevMarkerLength);
7611
        }
7612 3 1. abbreviate : Replaced integer subtraction with addition → KILLED
2. abbreviate : Replaced integer subtraction with addition → KILLED
3. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return abbrevMarker + str.substring(str.length() - (maxWidth - abbrevMarkerLength));
7613
    }
7614
7615
    /**
7616
     * <p>Abbreviates a String to the length passed, replacing the middle characters with the supplied
7617
     * replacement String.</p>
7618
     *
7619
     * <p>This abbreviation only occurs if the following criteria is met:</p>
7620
     * <ul>
7621
     * <li>Neither the String for abbreviation nor the replacement String are null or empty </li>
7622
     * <li>The length to truncate to is less than the length of the supplied String</li>
7623
     * <li>The length to truncate to is greater than 0</li>
7624
     * <li>The abbreviated String will have enough room for the length supplied replacement String
7625
     * and the first and last characters of the supplied String for abbreviation</li>
7626
     * </ul>
7627
     * <p>Otherwise, the returned String will be the same as the supplied String for abbreviation.
7628
     * </p>
7629
     *
7630
     * <pre>
7631
     * StringUtils.abbreviateMiddle(null, null, 0)      = null
7632
     * StringUtils.abbreviateMiddle("abc", null, 0)      = "abc"
7633
     * StringUtils.abbreviateMiddle("abc", ".", 0)      = "abc"
7634
     * StringUtils.abbreviateMiddle("abc", ".", 3)      = "abc"
7635
     * StringUtils.abbreviateMiddle("abcdef", ".", 4)     = "ab.f"
7636
     * </pre>
7637
     *
7638
     * @param str  the String to abbreviate, may be null
7639
     * @param middle the String to replace the middle characters with, may be null
7640
     * @param length the length to abbreviate {@code str} to.
7641
     * @return the abbreviated String if the above criteria is met, or the original String supplied for abbreviation.
7642
     * @since 2.5
7643
     */
7644
    public static String abbreviateMiddle(final String str, final String middle, final int length) {
7645 2 1. abbreviateMiddle : negated conditional → KILLED
2. abbreviateMiddle : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(middle)) {
7646 1 1. abbreviateMiddle : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviateMiddle to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
7647
        }
7648
7649 5 1. abbreviateMiddle : changed conditional boundary → KILLED
2. abbreviateMiddle : changed conditional boundary → KILLED
3. abbreviateMiddle : Replaced integer addition with subtraction → KILLED
4. abbreviateMiddle : negated conditional → KILLED
5. abbreviateMiddle : negated conditional → KILLED
        if (length >= str.length() || length < middle.length()+2) {
7650 1 1. abbreviateMiddle : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviateMiddle to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
7651
        }
7652
7653 1 1. abbreviateMiddle : Replaced integer subtraction with addition → KILLED
        final int targetSting = length-middle.length();
7654 3 1. abbreviateMiddle : Replaced integer division with multiplication → KILLED
2. abbreviateMiddle : Replaced integer modulus with multiplication → KILLED
3. abbreviateMiddle : Replaced integer addition with subtraction → KILLED
        final int startOffset = targetSting/2+targetSting%2;
7655 2 1. abbreviateMiddle : Replaced integer division with multiplication → KILLED
2. abbreviateMiddle : Replaced integer subtraction with addition → KILLED
        final int endOffset = str.length()-targetSting/2;
7656
7657
        final StringBuilder builder = new StringBuilder(length);
7658
        builder.append(str.substring(0,startOffset));
7659
        builder.append(middle);
7660
        builder.append(str.substring(endOffset));
7661
7662 1 1. abbreviateMiddle : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviateMiddle to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return builder.toString();
7663
    }
7664
7665
    // Difference
7666
    //-----------------------------------------------------------------------
7667
    /**
7668
     * <p>Compares two Strings, and returns the portion where they differ.
7669
     * More precisely, return the remainder of the second String,
7670
     * starting from where it's different from the first. This means that
7671
     * the difference between "abc" and "ab" is the empty String and not "c". </p>
7672
     *
7673
     * <p>For example,
7674
     * {@code difference("i am a machine", "i am a robot") -> "robot"}.</p>
7675
     *
7676
     * <pre>
7677
     * StringUtils.difference(null, null) = null
7678
     * StringUtils.difference("", "") = ""
7679
     * StringUtils.difference("", "abc") = "abc"
7680
     * StringUtils.difference("abc", "") = ""
7681
     * StringUtils.difference("abc", "abc") = ""
7682
     * StringUtils.difference("abc", "ab") = ""
7683
     * StringUtils.difference("ab", "abxyz") = "xyz"
7684
     * StringUtils.difference("abcde", "abxyz") = "xyz"
7685
     * StringUtils.difference("abcde", "xyz") = "xyz"
7686
     * </pre>
7687
     *
7688
     * @param str1  the first String, may be null
7689
     * @param str2  the second String, may be null
7690
     * @return the portion of str2 where it differs from str1; returns the
7691
     * empty String if they are equal
7692
     * @see #indexOfDifference(CharSequence,CharSequence)
7693
     * @since 2.0
7694
     */
7695
    public static String difference(final String str1, final String str2) {
7696 1 1. difference : negated conditional → KILLED
        if (str1 == null) {
7697 1 1. difference : mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str2;
7698
        }
7699 1 1. difference : negated conditional → KILLED
        if (str2 == null) {
7700 1 1. difference : mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str1;
7701
        }
7702
        final int at = indexOfDifference(str1, str2);
7703 1 1. difference : negated conditional → KILLED
        if (at == INDEX_NOT_FOUND) {
7704 1 1. difference : mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
7705
        }
7706 1 1. difference : mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str2.substring(at);
7707
    }
7708
7709
    /**
7710
     * <p>Compares two CharSequences, and returns the index at which the
7711
     * CharSequences begin to differ.</p>
7712
     *
7713
     * <p>For example,
7714
     * {@code indexOfDifference("i am a machine", "i am a robot") -> 7}</p>
7715
     *
7716
     * <pre>
7717
     * StringUtils.indexOfDifference(null, null) = -1
7718
     * StringUtils.indexOfDifference("", "") = -1
7719
     * StringUtils.indexOfDifference("", "abc") = 0
7720
     * StringUtils.indexOfDifference("abc", "") = 0
7721
     * StringUtils.indexOfDifference("abc", "abc") = -1
7722
     * StringUtils.indexOfDifference("ab", "abxyz") = 2
7723
     * StringUtils.indexOfDifference("abcde", "abxyz") = 2
7724
     * StringUtils.indexOfDifference("abcde", "xyz") = 0
7725
     * </pre>
7726
     *
7727
     * @param cs1  the first CharSequence, may be null
7728
     * @param cs2  the second CharSequence, may be null
7729
     * @return the index where cs1 and cs2 begin to differ; -1 if they are equal
7730
     * @since 2.0
7731
     * @since 3.0 Changed signature from indexOfDifference(String, String) to
7732
     * indexOfDifference(CharSequence, CharSequence)
7733
     */
7734
    public static int indexOfDifference(final CharSequence cs1, final CharSequence cs2) {
7735 1 1. indexOfDifference : negated conditional → KILLED
        if (cs1 == cs2) {
7736 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
7737
        }
7738 2 1. indexOfDifference : negated conditional → KILLED
2. indexOfDifference : negated conditional → KILLED
        if (cs1 == null || cs2 == null) {
7739 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return 0;
7740
        }
7741
        int i;
7742 5 1. indexOfDifference : changed conditional boundary → KILLED
2. indexOfDifference : changed conditional boundary → KILLED
3. indexOfDifference : Changed increment from 1 to -1 → KILLED
4. indexOfDifference : negated conditional → KILLED
5. indexOfDifference : negated conditional → KILLED
        for (i = 0; i < cs1.length() && i < cs2.length(); ++i) {
7743 1 1. indexOfDifference : negated conditional → KILLED
            if (cs1.charAt(i) != cs2.charAt(i)) {
7744
                break;
7745
            }
7746
        }
7747 4 1. indexOfDifference : changed conditional boundary → SURVIVED
2. indexOfDifference : changed conditional boundary → SURVIVED
3. indexOfDifference : negated conditional → KILLED
4. indexOfDifference : negated conditional → KILLED
        if (i < cs2.length() || i < cs1.length()) {
7748 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return i;
7749
        }
7750 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE
        return INDEX_NOT_FOUND;
7751
    }
7752
7753
    /**
7754
     * <p>Compares all CharSequences in an array and returns the index at which the
7755
     * CharSequences begin to differ.</p>
7756
     *
7757
     * <p>For example,
7758
     * <code>indexOfDifference(new String[] {"i am a machine", "i am a robot"}) -&gt; 7</code></p>
7759
     *
7760
     * <pre>
7761
     * StringUtils.indexOfDifference(null) = -1
7762
     * StringUtils.indexOfDifference(new String[] {}) = -1
7763
     * StringUtils.indexOfDifference(new String[] {"abc"}) = -1
7764
     * StringUtils.indexOfDifference(new String[] {null, null}) = -1
7765
     * StringUtils.indexOfDifference(new String[] {"", ""}) = -1
7766
     * StringUtils.indexOfDifference(new String[] {"", null}) = 0
7767
     * StringUtils.indexOfDifference(new String[] {"abc", null, null}) = 0
7768
     * StringUtils.indexOfDifference(new String[] {null, null, "abc"}) = 0
7769
     * StringUtils.indexOfDifference(new String[] {"", "abc"}) = 0
7770
     * StringUtils.indexOfDifference(new String[] {"abc", ""}) = 0
7771
     * StringUtils.indexOfDifference(new String[] {"abc", "abc"}) = -1
7772
     * StringUtils.indexOfDifference(new String[] {"abc", "a"}) = 1
7773
     * StringUtils.indexOfDifference(new String[] {"ab", "abxyz"}) = 2
7774
     * StringUtils.indexOfDifference(new String[] {"abcde", "abxyz"}) = 2
7775
     * StringUtils.indexOfDifference(new String[] {"abcde", "xyz"}) = 0
7776
     * StringUtils.indexOfDifference(new String[] {"xyz", "abcde"}) = 0
7777
     * StringUtils.indexOfDifference(new String[] {"i am a machine", "i am a robot"}) = 7
7778
     * </pre>
7779
     *
7780
     * @param css  array of CharSequences, entries may be null
7781
     * @return the index where the strings begin to differ; -1 if they are all equal
7782
     * @since 2.4
7783
     * @since 3.0 Changed signature from indexOfDifference(String...) to indexOfDifference(CharSequence...)
7784
     */
7785
    public static int indexOfDifference(final CharSequence... css) {
7786 3 1. indexOfDifference : changed conditional boundary → SURVIVED
2. indexOfDifference : negated conditional → KILLED
3. indexOfDifference : negated conditional → KILLED
        if (css == null || css.length <= 1) {
7787 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
7788
        }
7789
        boolean anyStringNull = false;
7790
        boolean allStringsNull = true;
7791
        final int arrayLen = css.length;
7792
        int shortestStrLen = Integer.MAX_VALUE;
7793
        int longestStrLen = 0;
7794
7795
        // find the min and max string lengths; this avoids checking to make
7796
        // sure we are not exceeding the length of the string each time through
7797
        // the bottom loop.
7798 3 1. indexOfDifference : changed conditional boundary → KILLED
2. indexOfDifference : Changed increment from 1 to -1 → KILLED
3. indexOfDifference : negated conditional → KILLED
        for (CharSequence cs : css) {
7799 1 1. indexOfDifference : negated conditional → KILLED
            if (cs == null) {
7800
                anyStringNull = true;
7801
                shortestStrLen = 0;
7802
            } else {
7803
                allStringsNull = false;
7804
                shortestStrLen = Math.min(cs.length(), shortestStrLen);
7805
                longestStrLen = Math.max(cs.length(), longestStrLen);
7806
            }
7807
        }
7808
7809
        // handle lists containing all nulls or all empty strings
7810 3 1. indexOfDifference : negated conditional → KILLED
2. indexOfDifference : negated conditional → KILLED
3. indexOfDifference : negated conditional → KILLED
        if (allStringsNull || longestStrLen == 0 && !anyStringNull) {
7811 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
7812
        }
7813
7814
        // handle lists containing some nulls or some empty strings
7815 1 1. indexOfDifference : negated conditional → KILLED
        if (shortestStrLen == 0) {
7816 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return 0;
7817
        }
7818
7819
        // find the position with the first difference across all strings
7820
        int firstDiff = -1;
7821 3 1. indexOfDifference : changed conditional boundary → KILLED
2. indexOfDifference : Changed increment from 1 to -1 → KILLED
3. indexOfDifference : negated conditional → KILLED
        for (int stringPos = 0; stringPos < shortestStrLen; stringPos++) {
7822
            final char comparisonChar = css[0].charAt(stringPos);
7823 3 1. indexOfDifference : changed conditional boundary → KILLED
2. indexOfDifference : Changed increment from 1 to -1 → KILLED
3. indexOfDifference : negated conditional → KILLED
            for (int arrayPos = 1; arrayPos < arrayLen; arrayPos++) {
7824 1 1. indexOfDifference : negated conditional → KILLED
                if (css[arrayPos].charAt(stringPos) != comparisonChar) {
7825
                    firstDiff = stringPos;
7826
                    break;
7827
                }
7828
            }
7829 1 1. indexOfDifference : negated conditional → KILLED
            if (firstDiff != -1) {
7830
                break;
7831
            }
7832
        }
7833
7834 2 1. indexOfDifference : negated conditional → KILLED
2. indexOfDifference : negated conditional → KILLED
        if (firstDiff == -1 && shortestStrLen != longestStrLen) {
7835
            // we compared all of the characters up to the length of the
7836
            // shortest string and didn't find a match, but the string lengths
7837
            // vary, so return the length of the shortest string.
7838 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return shortestStrLen;
7839
        }
7840 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return firstDiff;
7841
    }
7842
7843
    /**
7844
     * <p>Compares all Strings in an array and returns the initial sequence of
7845
     * characters that is common to all of them.</p>
7846
     *
7847
     * <p>For example,
7848
     * <code>getCommonPrefix(new String[] {"i am a machine", "i am a robot"}) -&gt; "i am a "</code></p>
7849
     *
7850
     * <pre>
7851
     * StringUtils.getCommonPrefix(null) = ""
7852
     * StringUtils.getCommonPrefix(new String[] {}) = ""
7853
     * StringUtils.getCommonPrefix(new String[] {"abc"}) = "abc"
7854
     * StringUtils.getCommonPrefix(new String[] {null, null}) = ""
7855
     * StringUtils.getCommonPrefix(new String[] {"", ""}) = ""
7856
     * StringUtils.getCommonPrefix(new String[] {"", null}) = ""
7857
     * StringUtils.getCommonPrefix(new String[] {"abc", null, null}) = ""
7858
     * StringUtils.getCommonPrefix(new String[] {null, null, "abc"}) = ""
7859
     * StringUtils.getCommonPrefix(new String[] {"", "abc"}) = ""
7860
     * StringUtils.getCommonPrefix(new String[] {"abc", ""}) = ""
7861
     * StringUtils.getCommonPrefix(new String[] {"abc", "abc"}) = "abc"
7862
     * StringUtils.getCommonPrefix(new String[] {"abc", "a"}) = "a"
7863
     * StringUtils.getCommonPrefix(new String[] {"ab", "abxyz"}) = "ab"
7864
     * StringUtils.getCommonPrefix(new String[] {"abcde", "abxyz"}) = "ab"
7865
     * StringUtils.getCommonPrefix(new String[] {"abcde", "xyz"}) = ""
7866
     * StringUtils.getCommonPrefix(new String[] {"xyz", "abcde"}) = ""
7867
     * StringUtils.getCommonPrefix(new String[] {"i am a machine", "i am a robot"}) = "i am a "
7868
     * </pre>
7869
     *
7870
     * @param strs  array of String objects, entries may be null
7871
     * @return the initial sequence of characters that are common to all Strings
7872
     * in the array; empty String if the array is null, the elements are all null
7873
     * or if there is no common prefix.
7874
     * @since 2.4
7875
     */
7876
    public static String getCommonPrefix(final String... strs) {
7877 2 1. getCommonPrefix : negated conditional → KILLED
2. getCommonPrefix : negated conditional → KILLED
        if (strs == null || strs.length == 0) {
7878 1 1. getCommonPrefix : mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
7879
        }
7880
        final int smallestIndexOfDiff = indexOfDifference(strs);
7881 1 1. getCommonPrefix : negated conditional → KILLED
        if (smallestIndexOfDiff == INDEX_NOT_FOUND) {
7882
            // all strings were identical
7883 1 1. getCommonPrefix : negated conditional → KILLED
            if (strs[0] == null) {
7884 1 1. getCommonPrefix : mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return EMPTY;
7885
            }
7886 1 1. getCommonPrefix : mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return strs[0];
7887 1 1. getCommonPrefix : negated conditional → KILLED
        } else if (smallestIndexOfDiff == 0) {
7888
            // there were no common initial characters
7889 1 1. getCommonPrefix : mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
7890
        } else {
7891
            // we found a common initial character sequence
7892 1 1. getCommonPrefix : mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return strs[0].substring(0, smallestIndexOfDiff);
7893
        }
7894
    }
7895
7896
    // Misc
7897
    //-----------------------------------------------------------------------
7898
    /**
7899
     * <p>Find the Levenshtein distance between two Strings.</p>
7900
     *
7901
     * <p>This is the number of changes needed to change one String into
7902
     * another, where each change is a single character modification (deletion,
7903
     * insertion or substitution).</p>
7904
     *
7905
     * <p>The implementation uses a single-dimensional array of length s.length() + 1. See 
7906
     * <a href="http://blog.softwx.net/2014/12/optimizing-levenshtein-algorithm-in-c.html">
7907
     * http://blog.softwx.net/2014/12/optimizing-levenshtein-algorithm-in-c.html</a> for details.</p>
7908
     *
7909
     * <pre>
7910
     * StringUtils.getLevenshteinDistance(null, *)             = IllegalArgumentException
7911
     * StringUtils.getLevenshteinDistance(*, null)             = IllegalArgumentException
7912
     * StringUtils.getLevenshteinDistance("","")               = 0
7913
     * StringUtils.getLevenshteinDistance("","a")              = 1
7914
     * StringUtils.getLevenshteinDistance("aaapppp", "")       = 7
7915
     * StringUtils.getLevenshteinDistance("frog", "fog")       = 1
7916
     * StringUtils.getLevenshteinDistance("fly", "ant")        = 3
7917
     * StringUtils.getLevenshteinDistance("elephant", "hippo") = 7
7918
     * StringUtils.getLevenshteinDistance("hippo", "elephant") = 7
7919
     * StringUtils.getLevenshteinDistance("hippo", "zzzzzzzz") = 8
7920
     * StringUtils.getLevenshteinDistance("hello", "hallo")    = 1
7921
     * </pre>
7922
     *
7923
     * @param s  the first String, must not be null
7924
     * @param t  the second String, must not be null
7925
     * @return result distance
7926
     * @throws IllegalArgumentException if either String input {@code null}
7927
     * @since 3.0 Changed signature from getLevenshteinDistance(String, String) to
7928
     * getLevenshteinDistance(CharSequence, CharSequence)
7929
     */
7930
    public static int getLevenshteinDistance(CharSequence s, CharSequence t) {
7931 2 1. getLevenshteinDistance : negated conditional → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
        if (s == null || t == null) {
7932
            throw new IllegalArgumentException("Strings must not be null");
7933
        }
7934
7935
        int n = s.length();
7936
        int m = t.length();
7937
7938 1 1. getLevenshteinDistance : negated conditional → KILLED
        if (n == 0) {
7939 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return m;
7940 1 1. getLevenshteinDistance : negated conditional → KILLED
        } else if (m == 0) {
7941 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return n;
7942
        }
7943
7944 2 1. getLevenshteinDistance : changed conditional boundary → SURVIVED
2. getLevenshteinDistance : negated conditional → SURVIVED
        if (n > m) {
7945
            // swap the input strings to consume less memory
7946
            final CharSequence tmp = s;
7947
            s = t;
7948
            t = tmp;
7949
            n = m;
7950
            m = t.length();
7951
        }
7952
7953 1 1. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
        final int p[] = new int[n + 1];
7954
        // indexes into strings s and t
7955
        int i; // iterates through s
7956
        int j; // iterates through t
7957
        int upper_left;
7958
        int upper;
7959
7960
        char t_j; // jth character of t
7961
        int cost;
7962
7963 3 1. getLevenshteinDistance : changed conditional boundary → SURVIVED
2. getLevenshteinDistance : negated conditional → SURVIVED
3. getLevenshteinDistance : Changed increment from 1 to -1 → KILLED
        for (i = 0; i <= n; i++) {
7964
            p[i] = i;
7965
        }
7966
7967 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : Changed increment from 1 to -1 → KILLED
3. getLevenshteinDistance : negated conditional → KILLED
        for (j = 1; j <= m; j++) {
7968
            upper_left = p[0];
7969 1 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
            t_j = t.charAt(j - 1);
7970
            p[0] = j;
7971
7972 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : Changed increment from 1 to -1 → KILLED
3. getLevenshteinDistance : negated conditional → KILLED
            for (i = 1; i <= n; i++) {
7973
                upper = p[i];
7974 2 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
                cost = s.charAt(i - 1) == t_j ? 0 : 1;
7975
                // minimum of cell to the left+1, to the top+1, diagonally left and up +cost
7976 4 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
2. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
3. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
4. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
                p[i] = Math.min(Math.min(p[i - 1] + 1, p[i] + 1), upper_left + cost);
7977
                upper_left = upper;
7978
            }
7979
        }
7980
7981 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return p[n];
7982
    }
7983
7984
    /**
7985
     * <p>Find the Levenshtein distance between two Strings if it's less than or equal to a given
7986
     * threshold.</p>
7987
     *
7988
     * <p>This is the number of changes needed to change one String into
7989
     * another, where each change is a single character modification (deletion,
7990
     * insertion or substitution).</p>
7991
     *
7992
     * <p>This implementation follows from Algorithms on Strings, Trees and Sequences by Dan Gusfield
7993
     * and Chas Emerick's implementation of the Levenshtein distance algorithm from
7994
     * <a href="http://www.merriampark.com/ld.htm">http://www.merriampark.com/ld.htm</a></p>
7995
     *
7996
     * <pre>
7997
     * StringUtils.getLevenshteinDistance(null, *, *)             = IllegalArgumentException
7998
     * StringUtils.getLevenshteinDistance(*, null, *)             = IllegalArgumentException
7999
     * StringUtils.getLevenshteinDistance(*, *, -1)               = IllegalArgumentException
8000
     * StringUtils.getLevenshteinDistance("","", 0)               = 0
8001
     * StringUtils.getLevenshteinDistance("aaapppp", "", 8)       = 7
8002
     * StringUtils.getLevenshteinDistance("aaapppp", "", 7)       = 7
8003
     * StringUtils.getLevenshteinDistance("aaapppp", "", 6))      = -1
8004
     * StringUtils.getLevenshteinDistance("elephant", "hippo", 7) = 7
8005
     * StringUtils.getLevenshteinDistance("elephant", "hippo", 6) = -1
8006
     * StringUtils.getLevenshteinDistance("hippo", "elephant", 7) = 7
8007
     * StringUtils.getLevenshteinDistance("hippo", "elephant", 6) = -1
8008
     * </pre>
8009
     *
8010
     * @param s  the first String, must not be null
8011
     * @param t  the second String, must not be null
8012
     * @param threshold the target threshold, must not be negative
8013
     * @return result distance, or {@code -1} if the distance would be greater than the threshold
8014
     * @throws IllegalArgumentException if either String input {@code null} or negative threshold
8015
     */
8016
    public static int getLevenshteinDistance(CharSequence s, CharSequence t, final int threshold) {
8017 2 1. getLevenshteinDistance : negated conditional → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
        if (s == null || t == null) {
8018
            throw new IllegalArgumentException("Strings must not be null");
8019
        }
8020 2 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
        if (threshold < 0) {
8021
            throw new IllegalArgumentException("Threshold must not be negative");
8022
        }
8023
8024
        /*
8025
        This implementation only computes the distance if it's less than or equal to the
8026
        threshold value, returning -1 if it's greater.  The advantage is performance: unbounded
8027
        distance is O(nm), but a bound of k allows us to reduce it to O(km) time by only
8028
        computing a diagonal stripe of width 2k + 1 of the cost table.
8029
        It is also possible to use this to compute the unbounded Levenshtein distance by starting
8030
        the threshold at 1 and doubling each time until the distance is found; this is O(dm), where
8031
        d is the distance.
8032
8033
        One subtlety comes from needing to ignore entries on the border of our stripe
8034
        eg.
8035
        p[] = |#|#|#|*
8036
        d[] =  *|#|#|#|
8037
        We must ignore the entry to the left of the leftmost member
8038
        We must ignore the entry above the rightmost member
8039
8040
        Another subtlety comes from our stripe running off the matrix if the strings aren't
8041
        of the same size.  Since string s is always swapped to be the shorter of the two,
8042
        the stripe will always run off to the upper right instead of the lower left of the matrix.
8043
8044
        As a concrete example, suppose s is of length 5, t is of length 7, and our threshold is 1.
8045
        In this case we're going to walk a stripe of length 3.  The matrix would look like so:
8046
8047
           1 2 3 4 5
8048
        1 |#|#| | | |
8049
        2 |#|#|#| | |
8050
        3 | |#|#|#| |
8051
        4 | | |#|#|#|
8052
        5 | | | |#|#|
8053
        6 | | | | |#|
8054
        7 | | | | | |
8055
8056
        Note how the stripe leads off the table as there is no possible way to turn a string of length 5
8057
        into one of length 7 in edit distance of 1.
8058
8059
        Additionally, this implementation decreases memory usage by using two
8060
        single-dimensional arrays and swapping them back and forth instead of allocating
8061
        an entire n by m matrix.  This requires a few minor changes, such as immediately returning
8062
        when it's detected that the stripe has run off the matrix and initially filling the arrays with
8063
        large values so that entries we don't compute are ignored.
8064
8065
        See Algorithms on Strings, Trees and Sequences by Dan Gusfield for some discussion.
8066
         */
8067
8068
        int n = s.length(); // length of s
8069
        int m = t.length(); // length of t
8070
8071
        // if one string is empty, the edit distance is necessarily the length of the other
8072 1 1. getLevenshteinDistance : negated conditional → KILLED
        if (n == 0) {
8073 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
3. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return m <= threshold ? m : -1;
8074 1 1. getLevenshteinDistance : negated conditional → KILLED
        } else if (m == 0) {
8075 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
3. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return n <= threshold ? n : -1;
8076
        }
8077
        // no need to calculate the distance if the length difference is greater than the threshold
8078 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
3. getLevenshteinDistance : negated conditional → KILLED
        else if (Math.abs(n - m) > threshold) {
8079 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return -1;
8080
        }
8081
8082 2 1. getLevenshteinDistance : changed conditional boundary → SURVIVED
2. getLevenshteinDistance : negated conditional → SURVIVED
        if (n > m) {
8083
            // swap the two strings to consume less memory
8084
            final CharSequence tmp = s;
8085
            s = t;
8086
            t = tmp;
8087
            n = m;
8088
            m = t.length();
8089
        }
8090
8091 1 1. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
        int p[] = new int[n + 1]; // 'previous' cost array, horizontally
8092 1 1. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
        int d[] = new int[n + 1]; // cost array, horizontally
8093
        int _d[]; // placeholder to assist in swapping p and d
8094
8095
        // fill in starting table values
8096 1 1. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
        final int boundary = Math.min(n, threshold) + 1;
8097 3 1. getLevenshteinDistance : negated conditional → SURVIVED
2. getLevenshteinDistance : changed conditional boundary → KILLED
3. getLevenshteinDistance : Changed increment from 1 to -1 → KILLED
        for (int i = 0; i < boundary; i++) {
8098
            p[i] = i;
8099
        }
8100
        // these fills ensure that the value above the rightmost entry of our
8101
        // stripe will be ignored in following loop iterations
8102 1 1. getLevenshteinDistance : removed call to java/util/Arrays::fill → SURVIVED
        Arrays.fill(p, boundary, p.length, Integer.MAX_VALUE);
8103 1 1. getLevenshteinDistance : removed call to java/util/Arrays::fill → SURVIVED
        Arrays.fill(d, Integer.MAX_VALUE);
8104
8105
        // iterates through t
8106 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : Changed increment from 1 to -1 → KILLED
3. getLevenshteinDistance : negated conditional → KILLED
        for (int j = 1; j <= m; j++) {
8107 1 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
            final char t_j = t.charAt(j - 1); // jth character of t
8108
            d[0] = j;
8109
8110
            // compute stripe indices, constrain to array size
8111 1 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
            final int min = Math.max(1, j - threshold);
8112 4 1. getLevenshteinDistance : changed conditional boundary → SURVIVED
2. getLevenshteinDistance : Replaced integer subtraction with addition → SURVIVED
3. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
4. getLevenshteinDistance : negated conditional → KILLED
            final int max = j > Integer.MAX_VALUE - threshold ? n : Math.min(n, j + threshold);
8113
8114
            // the stripe may lead off of the table if s and t are of different sizes
8115 2 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
            if (min > max) {
8116 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE
                return -1;
8117
            }
8118
8119
            // ignore entry left of leftmost
8120 2 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
            if (min > 1) {
8121 1 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
                d[min - 1] = Integer.MAX_VALUE;
8122
            }
8123
8124
            // iterates through [min, max] in s
8125 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : Changed increment from 1 to -1 → KILLED
3. getLevenshteinDistance : negated conditional → KILLED
            for (int i = min; i <= max; i++) {
8126 2 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
                if (s.charAt(i - 1) == t_j) {
8127
                    // diagonally left and up
8128 1 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
                    d[i] = p[i - 1];
8129
                } else {
8130
                    // 1 + minimum of cell to the left, to the top, diagonally left and up
8131 3 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
2. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
3. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
                    d[i] = 1 + Math.min(Math.min(d[i - 1], p[i]), p[i - 1]);
8132
                }
8133
            }
8134
8135
            // copy current distance counts to 'previous row' distance counts
8136
            _d = p;
8137
            p = d;
8138
            d = _d;
8139
        }
8140
8141
        // if p[n] is greater than the threshold, there's no guarantee on it being the correct
8142
        // distance
8143 2 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
        if (p[n] <= threshold) {
8144 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return p[n];
8145
        }
8146 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return -1;
8147
    }
8148
    
8149
    /**
8150
     * <p>Find the Jaro Winkler Distance which indicates the similarity score between two Strings.</p>
8151
     *
8152
     * <p>The Jaro measure is the weighted sum of percentage of matched characters from each file and transposed characters. 
8153
     * Winkler increased this measure for matching initial characters.</p>
8154
     *
8155
     * <p>This implementation is based on the Jaro Winkler similarity algorithm
8156
     * from <a href="http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance">http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance</a>.</p>
8157
     * 
8158
     * <pre>
8159
     * StringUtils.getJaroWinklerDistance(null, null)          = IllegalArgumentException
8160
     * StringUtils.getJaroWinklerDistance("","")               = 0.0
8161
     * StringUtils.getJaroWinklerDistance("","a")              = 0.0
8162
     * StringUtils.getJaroWinklerDistance("aaapppp", "")       = 0.0
8163
     * StringUtils.getJaroWinklerDistance("frog", "fog")       = 0.93
8164
     * StringUtils.getJaroWinklerDistance("fly", "ant")        = 0.0
8165
     * StringUtils.getJaroWinklerDistance("elephant", "hippo") = 0.44
8166
     * StringUtils.getJaroWinklerDistance("hippo", "elephant") = 0.44
8167
     * StringUtils.getJaroWinklerDistance("hippo", "zzzzzzzz") = 0.0
8168
     * StringUtils.getJaroWinklerDistance("hello", "hallo")    = 0.88
8169
     * StringUtils.getJaroWinklerDistance("ABC Corporation", "ABC Corp") = 0.93
8170
     * StringUtils.getJaroWinklerDistance("D N H Enterprises Inc", "D &amp; H Enterprises, Inc.") = 0.95
8171
     * StringUtils.getJaroWinklerDistance("My Gym Children's Fitness Center", "My Gym. Childrens Fitness") = 0.92
8172
     * StringUtils.getJaroWinklerDistance("PENNSYLVANIA", "PENNCISYLVNIA") = 0.88
8173
     * </pre>
8174
     *
8175
     * @param first the first String, must not be null
8176
     * @param second the second String, must not be null
8177
     * @return result distance
8178
     * @throws IllegalArgumentException if either String input {@code null}
8179
     * @since 3.3
8180
     * @deprecated as of 3.6, due to a misleading name, use {@link #getJaroWinklerSimilarity(CharSequence, CharSequence)} instead
8181
     */
8182
    @Deprecated
8183
    public static double getJaroWinklerDistance(final CharSequence first, final CharSequence second) {
8184
        final double DEFAULT_SCALING_FACTOR = 0.1;
8185
8186 2 1. getJaroWinklerDistance : negated conditional → KILLED
2. getJaroWinklerDistance : negated conditional → KILLED
        if (first == null || second == null) {
8187
            throw new IllegalArgumentException("Strings must not be null");
8188
        }
8189
8190
        final int[] mtp = matches(first, second);
8191
        final double m = mtp[0];
8192 1 1. getJaroWinklerDistance : negated conditional → KILLED
        if (m == 0) {
8193 1 1. getJaroWinklerDistance : replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerDistance → KILLED
            return 0D;
8194
        }
8195 7 1. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
2. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
3. getJaroWinklerDistance : Replaced double addition with subtraction → KILLED
4. getJaroWinklerDistance : Replaced double subtraction with addition → KILLED
5. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
6. getJaroWinklerDistance : Replaced double addition with subtraction → KILLED
7. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
        final double j = ((m / first.length() + m / second.length() + (m - mtp[1]) / m)) / 3;
8196 7 1. getJaroWinklerDistance : changed conditional boundary → SURVIVED
2. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
3. getJaroWinklerDistance : Replaced double multiplication with division → KILLED
4. getJaroWinklerDistance : Replaced double subtraction with addition → KILLED
5. getJaroWinklerDistance : Replaced double multiplication with division → KILLED
6. getJaroWinklerDistance : Replaced double addition with subtraction → KILLED
7. getJaroWinklerDistance : negated conditional → KILLED
        final double jw = j < 0.7D ? j : j + Math.min(DEFAULT_SCALING_FACTOR, 1D / mtp[3]) * mtp[2] * (1D - j);
8197 3 1. getJaroWinklerDistance : Replaced double multiplication with division → KILLED
2. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
3. getJaroWinklerDistance : replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerDistance → KILLED
        return Math.round(jw * 100.0D) / 100.0D;
8198
    }
8199
8200
    /**
8201
     * <p>Find the Jaro Winkler Similarity which indicates the similarity score between two Strings.</p>
8202
     *
8203
     * <p>The Jaro measure is the weighted sum of percentage of matched characters from each file and transposed characters. 
8204
     * Winkler increased this measure for matching initial characters.</p>
8205
     *
8206
     * <p>This implementation is based on the Jaro Winkler similarity algorithm
8207
     * from <a href="http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance">http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance</a>.</p>
8208
     * 
8209
     * <pre>
8210
     * StringUtils.getJaroWinklerSimilarity(null, null)          = IllegalArgumentException
8211
     * StringUtils.getJaroWinklerSimilarity("","")               = 0.0
8212
     * StringUtils.getJaroWinklerSimilarity("","a")              = 0.0
8213
     * StringUtils.getJaroWinklerSimilarity("aaapppp", "")       = 0.0
8214
     * StringUtils.getJaroWinklerSimilarity("frog", "fog")       = 0.93
8215
     * StringUtils.getJaroWinklerSimilarity("fly", "ant")        = 0.0
8216
     * StringUtils.getJaroWinklerSimilarity("elephant", "hippo") = 0.44
8217
     * StringUtils.getJaroWinklerSimilarity("hippo", "elephant") = 0.44
8218
     * StringUtils.getJaroWinklerSimilarity("hippo", "zzzzzzzz") = 0.0
8219
     * StringUtils.getJaroWinklerSimilarity("hello", "hallo")    = 0.88
8220
     * StringUtils.getJaroWinklerSimilarity("ABC Corporation", "ABC Corp") = 0.93
8221
     * StringUtils.getJaroWinklerSimilarity("D N H Enterprises Inc", "D &amp; H Enterprises, Inc.") = 0.95
8222
     * StringUtils.getJaroWinklerSimilarity("My Gym Children's Fitness Center", "My Gym. Childrens Fitness") = 0.92
8223
     * StringUtils.getJaroWinklerSimilarity("PENNSYLVANIA", "PENNCISYLVNIA") = 0.88
8224
     * </pre>
8225
     *
8226
     * @param first the first String, must not be null
8227
     * @param second the second String, must not be null
8228
     * @return result similarity
8229
     * @throws IllegalArgumentException if either String input {@code null}
8230
     * @since 3.6
8231
     */
8232
    public static double getJaroWinklerSimilarity(final CharSequence first, final CharSequence second) {
8233
        final double DEFAULT_SCALING_FACTOR = 0.1;
8234
8235 2 1. getJaroWinklerSimilarity : negated conditional → KILLED
2. getJaroWinklerSimilarity : negated conditional → KILLED
        if (first == null || second == null) {
8236
            throw new IllegalArgumentException("Strings must not be null");
8237
        }
8238
8239
        final int[] mtp = matches(first, second);
8240
        final double m = mtp[0];
8241 1 1. getJaroWinklerSimilarity : negated conditional → KILLED
        if (m == 0) {
8242 1 1. getJaroWinklerSimilarity : replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerSimilarity → KILLED
            return 0D;
8243
        }
8244 7 1. getJaroWinklerSimilarity : Replaced double division with multiplication → KILLED
2. getJaroWinklerSimilarity : Replaced double division with multiplication → KILLED
3. getJaroWinklerSimilarity : Replaced double addition with subtraction → KILLED
4. getJaroWinklerSimilarity : Replaced double subtraction with addition → KILLED
5. getJaroWinklerSimilarity : Replaced double division with multiplication → KILLED
6. getJaroWinklerSimilarity : Replaced double addition with subtraction → KILLED
7. getJaroWinklerSimilarity : Replaced double division with multiplication → KILLED
        final double j = ((m / first.length() + m / second.length() + (m - mtp[1]) / m)) / 3;
8245 7 1. getJaroWinklerSimilarity : changed conditional boundary → SURVIVED
2. getJaroWinklerSimilarity : Replaced double division with multiplication → KILLED
3. getJaroWinklerSimilarity : Replaced double multiplication with division → KILLED
4. getJaroWinklerSimilarity : Replaced double subtraction with addition → KILLED
5. getJaroWinklerSimilarity : Replaced double multiplication with division → KILLED
6. getJaroWinklerSimilarity : Replaced double addition with subtraction → KILLED
7. getJaroWinklerSimilarity : negated conditional → KILLED
        final double jw = j < 0.7D ? j : j + Math.min(DEFAULT_SCALING_FACTOR, 1D / mtp[3]) * mtp[2] * (1D - j);
8246 3 1. getJaroWinklerSimilarity : Replaced double multiplication with division → KILLED
2. getJaroWinklerSimilarity : Replaced double division with multiplication → KILLED
3. getJaroWinklerSimilarity : replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerSimilarity → KILLED
        return Math.round(jw * 100.0D) / 100.0D;
8247
    }
8248
8249
    private static int[] matches(final CharSequence first, final CharSequence second) {
8250
        CharSequence max, min;
8251 2 1. matches : changed conditional boundary → SURVIVED
2. matches : negated conditional → KILLED
        if (first.length() > second.length()) {
8252
            max = first;
8253
            min = second;
8254
        } else {
8255
            max = second;
8256
            min = first;
8257
        }
8258 2 1. matches : Replaced integer division with multiplication → KILLED
2. matches : Replaced integer subtraction with addition → KILLED
        final int range = Math.max(max.length() / 2 - 1, 0);
8259
        final int[] matchIndexes = new int[min.length()];
8260 1 1. matches : removed call to java/util/Arrays::fill → KILLED
        Arrays.fill(matchIndexes, -1);
8261
        final boolean[] matchFlags = new boolean[max.length()];
8262
        int matches = 0;
8263 3 1. matches : changed conditional boundary → KILLED
2. matches : Changed increment from 1 to -1 → KILLED
3. matches : negated conditional → KILLED
        for (int mi = 0; mi < min.length(); mi++) {
8264
            final char c1 = min.charAt(mi);
8265 6 1. matches : changed conditional boundary → KILLED
2. matches : Changed increment from 1 to -1 → KILLED
3. matches : Replaced integer subtraction with addition → KILLED
4. matches : Replaced integer addition with subtraction → KILLED
5. matches : Replaced integer addition with subtraction → KILLED
6. matches : negated conditional → KILLED
            for (int xi = Math.max(mi - range, 0), xn = Math.min(mi + range + 1, max.length()); xi < xn; xi++) {
8266 2 1. matches : negated conditional → KILLED
2. matches : negated conditional → KILLED
                if (!matchFlags[xi] && c1 == max.charAt(xi)) {
8267
                    matchIndexes[mi] = xi;
8268
                    matchFlags[xi] = true;
8269 1 1. matches : Changed increment from 1 to -1 → KILLED
                    matches++;
8270
                    break;
8271
                }
8272
            }
8273
        }
8274
        final char[] ms1 = new char[matches];
8275
        final char[] ms2 = new char[matches];
8276 3 1. matches : changed conditional boundary → KILLED
2. matches : Changed increment from 1 to -1 → KILLED
3. matches : negated conditional → KILLED
        for (int i = 0, si = 0; i < min.length(); i++) {
8277 1 1. matches : negated conditional → KILLED
            if (matchIndexes[i] != -1) {
8278
                ms1[si] = min.charAt(i);
8279 1 1. matches : Changed increment from 1 to -1 → KILLED
                si++;
8280
            }
8281
        }
8282 3 1. matches : changed conditional boundary → KILLED
2. matches : Changed increment from 1 to -1 → KILLED
3. matches : negated conditional → KILLED
        for (int i = 0, si = 0; i < max.length(); i++) {
8283 1 1. matches : negated conditional → KILLED
            if (matchFlags[i]) {
8284
                ms2[si] = max.charAt(i);
8285 1 1. matches : Changed increment from 1 to -1 → KILLED
                si++;
8286
            }
8287
        }
8288
        int transpositions = 0;
8289 3 1. matches : changed conditional boundary → KILLED
2. matches : Changed increment from 1 to -1 → KILLED
3. matches : negated conditional → KILLED
        for (int mi = 0; mi < ms1.length; mi++) {
8290 1 1. matches : negated conditional → KILLED
            if (ms1[mi] != ms2[mi]) {
8291 1 1. matches : Changed increment from 1 to -1 → KILLED
                transpositions++;
8292
            }
8293
        }
8294
        int prefix = 0;
8295 3 1. matches : changed conditional boundary → KILLED
2. matches : Changed increment from 1 to -1 → KILLED
3. matches : negated conditional → KILLED
        for (int mi = 0; mi < min.length(); mi++) {
8296 1 1. matches : negated conditional → KILLED
            if (first.charAt(mi) == second.charAt(mi)) {
8297 1 1. matches : Changed increment from 1 to -1 → KILLED
                prefix++;
8298
            } else {
8299
                break;
8300
            }
8301
        }
8302 2 1. matches : Replaced integer division with multiplication → KILLED
2. matches : mutated return of Object value for org/apache/commons/lang3/StringUtils::matches to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new int[] { matches, transpositions / 2, prefix, max.length() };
8303
    }
8304
8305
    /**
8306
     * <p>Find the Fuzzy Distance which indicates the similarity score between two Strings.</p>
8307
     *
8308
     * <p>This string matching algorithm is similar to the algorithms of editors such as Sublime Text,
8309
     * TextMate, Atom and others. One point is given for every matched character. Subsequent
8310
     * matches yield two bonus points. A higher score indicates a higher similarity.</p>
8311
     *
8312
     * <pre>
8313
     * StringUtils.getFuzzyDistance(null, null, null)                                    = IllegalArgumentException
8314
     * StringUtils.getFuzzyDistance("", "", Locale.ENGLISH)                              = 0
8315
     * StringUtils.getFuzzyDistance("Workshop", "b", Locale.ENGLISH)                     = 0
8316
     * StringUtils.getFuzzyDistance("Room", "o", Locale.ENGLISH)                         = 1
8317
     * StringUtils.getFuzzyDistance("Workshop", "w", Locale.ENGLISH)                     = 1
8318
     * StringUtils.getFuzzyDistance("Workshop", "ws", Locale.ENGLISH)                    = 2
8319
     * StringUtils.getFuzzyDistance("Workshop", "wo", Locale.ENGLISH)                    = 4
8320
     * StringUtils.getFuzzyDistance("Apache Software Foundation", "asf", Locale.ENGLISH) = 3
8321
     * </pre>
8322
     *
8323
     * @param term a full term that should be matched against, must not be null
8324
     * @param query the query that will be matched against a term, must not be null
8325
     * @param locale This string matching logic is case insensitive. A locale is necessary to normalize
8326
     *  both Strings to lower case.
8327
     * @return result score
8328
     * @throws IllegalArgumentException if either String input {@code null} or Locale input {@code null}
8329
     * @since 3.4
8330
     */
8331
    public static int getFuzzyDistance(final CharSequence term, final CharSequence query, final Locale locale) {
8332 2 1. getFuzzyDistance : negated conditional → KILLED
2. getFuzzyDistance : negated conditional → KILLED
        if (term == null || query == null) {
8333
            throw new IllegalArgumentException("Strings must not be null");
8334 1 1. getFuzzyDistance : negated conditional → KILLED
        } else if (locale == null) {
8335
            throw new IllegalArgumentException("Locale must not be null");
8336
        }
8337
8338
        // fuzzy logic is case insensitive. We normalize the Strings to lower
8339
        // case right from the start. Turning characters to lower case
8340
        // via Character.toLowerCase(char) is unfortunately insufficient
8341
        // as it does not accept a locale.
8342
        final String termLowerCase = term.toString().toLowerCase(locale);
8343
        final String queryLowerCase = query.toString().toLowerCase(locale);
8344
8345
        // the resulting score
8346
        int score = 0;
8347
8348
        // the position in the term which will be scanned next for potential
8349
        // query character matches
8350
        int termIndex = 0;
8351
8352
        // index of the previously matched character in the term
8353
        int previousMatchingCharacterIndex = Integer.MIN_VALUE;
8354
8355 3 1. getFuzzyDistance : changed conditional boundary → KILLED
2. getFuzzyDistance : Changed increment from 1 to -1 → KILLED
3. getFuzzyDistance : negated conditional → KILLED
        for (int queryIndex = 0; queryIndex < queryLowerCase.length(); queryIndex++) {
8356
            final char queryChar = queryLowerCase.charAt(queryIndex);
8357
8358
            boolean termCharacterMatchFound = false;
8359 4 1. getFuzzyDistance : changed conditional boundary → KILLED
2. getFuzzyDistance : Changed increment from 1 to -1 → KILLED
3. getFuzzyDistance : negated conditional → KILLED
4. getFuzzyDistance : negated conditional → KILLED
            for (; termIndex < termLowerCase.length() && !termCharacterMatchFound; termIndex++) {
8360
                final char termChar = termLowerCase.charAt(termIndex);
8361
8362 1 1. getFuzzyDistance : negated conditional → KILLED
                if (queryChar == termChar) {
8363
                    // simple character matches result in one point
8364 1 1. getFuzzyDistance : Changed increment from 1 to -1 → KILLED
                    score++;
8365
8366
                    // subsequent character matches further improve
8367
                    // the score.
8368 2 1. getFuzzyDistance : Replaced integer addition with subtraction → KILLED
2. getFuzzyDistance : negated conditional → KILLED
                    if (previousMatchingCharacterIndex + 1 == termIndex) {
8369 1 1. getFuzzyDistance : Changed increment from 2 to -2 → KILLED
                        score += 2;
8370
                    }
8371
8372
                    previousMatchingCharacterIndex = termIndex;
8373
8374
                    // we can leave the nested loop. Every character in the
8375
                    // query can match at most one character in the term.
8376
                    termCharacterMatchFound = true;
8377
                }
8378
            }
8379
        }
8380
8381 1 1. getFuzzyDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return score;
8382
    }
8383
8384
    // startsWith
8385
    //-----------------------------------------------------------------------
8386
8387
    /**
8388
     * <p>Check if a CharSequence starts with a specified prefix.</p>
8389
     *
8390
     * <p>{@code null}s are handled without exceptions. Two {@code null}
8391
     * references are considered to be equal. The comparison is case sensitive.</p>
8392
     *
8393
     * <pre>
8394
     * StringUtils.startsWith(null, null)      = true
8395
     * StringUtils.startsWith(null, "abc")     = false
8396
     * StringUtils.startsWith("abcdef", null)  = false
8397
     * StringUtils.startsWith("abcdef", "abc") = true
8398
     * StringUtils.startsWith("ABCDEF", "abc") = false
8399
     * </pre>
8400
     *
8401
     * @see java.lang.String#startsWith(String)
8402
     * @param str  the CharSequence to check, may be null
8403
     * @param prefix the prefix to find, may be null
8404
     * @return {@code true} if the CharSequence starts with the prefix, case sensitive, or
8405
     *  both {@code null}
8406
     * @since 2.4
8407
     * @since 3.0 Changed signature from startsWith(String, String) to startsWith(CharSequence, CharSequence)
8408
     */
8409
    public static boolean startsWith(final CharSequence str, final CharSequence prefix) {
8410 1 1. startsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return startsWith(str, prefix, false);
8411
    }
8412
8413
    /**
8414
     * <p>Case insensitive check if a CharSequence starts with a specified prefix.</p>
8415
     *
8416
     * <p>{@code null}s are handled without exceptions. Two {@code null}
8417
     * references are considered to be equal. The comparison is case insensitive.</p>
8418
     *
8419
     * <pre>
8420
     * StringUtils.startsWithIgnoreCase(null, null)      = true
8421
     * StringUtils.startsWithIgnoreCase(null, "abc")     = false
8422
     * StringUtils.startsWithIgnoreCase("abcdef", null)  = false
8423
     * StringUtils.startsWithIgnoreCase("abcdef", "abc") = true
8424
     * StringUtils.startsWithIgnoreCase("ABCDEF", "abc") = true
8425
     * </pre>
8426
     *
8427
     * @see java.lang.String#startsWith(String)
8428
     * @param str  the CharSequence to check, may be null
8429
     * @param prefix the prefix to find, may be null
8430
     * @return {@code true} if the CharSequence starts with the prefix, case insensitive, or
8431
     *  both {@code null}
8432
     * @since 2.4
8433
     * @since 3.0 Changed signature from startsWithIgnoreCase(String, String) to startsWithIgnoreCase(CharSequence, CharSequence)
8434
     */
8435
    public static boolean startsWithIgnoreCase(final CharSequence str, final CharSequence prefix) {
8436 1 1. startsWithIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return startsWith(str, prefix, true);
8437
    }
8438
8439
    /**
8440
     * <p>Check if a CharSequence starts with a specified prefix (optionally case insensitive).</p>
8441
     *
8442
     * @see java.lang.String#startsWith(String)
8443
     * @param str  the CharSequence to check, may be null
8444
     * @param prefix the prefix to find, may be null
8445
     * @param ignoreCase indicates whether the compare should ignore case
8446
     *  (case insensitive) or not.
8447
     * @return {@code true} if the CharSequence starts with the prefix or
8448
     *  both {@code null}
8449
     */
8450
    private static boolean startsWith(final CharSequence str, final CharSequence prefix, final boolean ignoreCase) {
8451 2 1. startsWith : negated conditional → KILLED
2. startsWith : negated conditional → KILLED
        if (str == null || prefix == null) {
8452 3 1. startsWith : negated conditional → KILLED
2. startsWith : negated conditional → KILLED
3. startsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return str == null && prefix == null;
8453
        }
8454 2 1. startsWith : changed conditional boundary → SURVIVED
2. startsWith : negated conditional → KILLED
        if (prefix.length() > str.length()) {
8455 1 1. startsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
8456
        }
8457 1 1. startsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.regionMatches(str, ignoreCase, 0, prefix, 0, prefix.length());
8458
    }
8459
8460
    /**
8461
     * <p>Check if a CharSequence starts with any of the provided case-sensitive prefixes.</p>
8462
     *
8463
     * <pre>
8464
     * StringUtils.startsWithAny(null, null)      = false
8465
     * StringUtils.startsWithAny(null, new String[] {"abc"})  = false
8466
     * StringUtils.startsWithAny("abcxyz", null)     = false
8467
     * StringUtils.startsWithAny("abcxyz", new String[] {""}) = true
8468
     * StringUtils.startsWithAny("abcxyz", new String[] {"abc"}) = true
8469
     * StringUtils.startsWithAny("abcxyz", new String[] {null, "xyz", "abc"}) = true
8470
     * StringUtils.startsWithAny("abcxyz", null, "xyz", "ABCX") = false
8471
     * StringUtils.startsWithAny("ABCXYZ", null, "xyz", "abc") = false
8472
     * </pre>
8473
     *
8474
     * @param sequence the CharSequence to check, may be null
8475
     * @param searchStrings the case-sensitive CharSequence prefixes, may be empty or contain {@code null}
8476
     * @see StringUtils#startsWith(CharSequence, CharSequence)
8477
     * @return {@code true} if the input {@code sequence} is {@code null} AND no {@code searchStrings} are provided, or
8478
     *   the input {@code sequence} begins with any of the provided case-sensitive {@code searchStrings}.
8479
     * @since 2.5
8480
     * @since 3.0 Changed signature from startsWithAny(String, String[]) to startsWithAny(CharSequence, CharSequence...)
8481
     */
8482
    public static boolean startsWithAny(final CharSequence sequence, final CharSequence... searchStrings) {
8483 2 1. startsWithAny : negated conditional → KILLED
2. startsWithAny : negated conditional → KILLED
        if (isEmpty(sequence) || ArrayUtils.isEmpty(searchStrings)) {
8484 1 1. startsWithAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
8485
        }
8486 3 1. startsWithAny : changed conditional boundary → KILLED
2. startsWithAny : Changed increment from 1 to -1 → KILLED
3. startsWithAny : negated conditional → KILLED
        for (final CharSequence searchString : searchStrings) {
8487 1 1. startsWithAny : negated conditional → KILLED
            if (startsWith(sequence, searchString)) {
8488 1 1. startsWithAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return true;
8489
            }
8490
        }
8491 1 1. startsWithAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
8492
    }
8493
8494
    // endsWith
8495
    //-----------------------------------------------------------------------
8496
8497
    /**
8498
     * <p>Check if a CharSequence ends with a specified suffix.</p>
8499
     *
8500
     * <p>{@code null}s are handled without exceptions. Two {@code null}
8501
     * references are considered to be equal. The comparison is case sensitive.</p>
8502
     *
8503
     * <pre>
8504
     * StringUtils.endsWith(null, null)      = true
8505
     * StringUtils.endsWith(null, "def")     = false
8506
     * StringUtils.endsWith("abcdef", null)  = false
8507
     * StringUtils.endsWith("abcdef", "def") = true
8508
     * StringUtils.endsWith("ABCDEF", "def") = false
8509
     * StringUtils.endsWith("ABCDEF", "cde") = false
8510
     * StringUtils.endsWith("ABCDEF", "")    = true
8511
     * </pre>
8512
     *
8513
     * @see java.lang.String#endsWith(String)
8514
     * @param str  the CharSequence to check, may be null
8515
     * @param suffix the suffix to find, may be null
8516
     * @return {@code true} if the CharSequence ends with the suffix, case sensitive, or
8517
     *  both {@code null}
8518
     * @since 2.4
8519
     * @since 3.0 Changed signature from endsWith(String, String) to endsWith(CharSequence, CharSequence)
8520
     */
8521
    public static boolean endsWith(final CharSequence str, final CharSequence suffix) {
8522 1 1. endsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return endsWith(str, suffix, false);
8523
    }
8524
8525
    /**
8526
     * <p>Case insensitive check if a CharSequence ends with a specified suffix.</p>
8527
     *
8528
     * <p>{@code null}s are handled without exceptions. Two {@code null}
8529
     * references are considered to be equal. The comparison is case insensitive.</p>
8530
     *
8531
     * <pre>
8532
     * StringUtils.endsWithIgnoreCase(null, null)      = true
8533
     * StringUtils.endsWithIgnoreCase(null, "def")     = false
8534
     * StringUtils.endsWithIgnoreCase("abcdef", null)  = false
8535
     * StringUtils.endsWithIgnoreCase("abcdef", "def") = true
8536
     * StringUtils.endsWithIgnoreCase("ABCDEF", "def") = true
8537
     * StringUtils.endsWithIgnoreCase("ABCDEF", "cde") = false
8538
     * </pre>
8539
     *
8540
     * @see java.lang.String#endsWith(String)
8541
     * @param str  the CharSequence to check, may be null
8542
     * @param suffix the suffix to find, may be null
8543
     * @return {@code true} if the CharSequence ends with the suffix, case insensitive, or
8544
     *  both {@code null}
8545
     * @since 2.4
8546
     * @since 3.0 Changed signature from endsWithIgnoreCase(String, String) to endsWithIgnoreCase(CharSequence, CharSequence)
8547
     */
8548
    public static boolean endsWithIgnoreCase(final CharSequence str, final CharSequence suffix) {
8549 1 1. endsWithIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return endsWith(str, suffix, true);
8550
    }
8551
8552
    /**
8553
     * <p>Check if a CharSequence ends with a specified suffix (optionally case insensitive).</p>
8554
     *
8555
     * @see java.lang.String#endsWith(String)
8556
     * @param str  the CharSequence to check, may be null
8557
     * @param suffix the suffix to find, may be null
8558
     * @param ignoreCase indicates whether the compare should ignore case
8559
     *  (case insensitive) or not.
8560
     * @return {@code true} if the CharSequence starts with the prefix or
8561
     *  both {@code null}
8562
     */
8563
    private static boolean endsWith(final CharSequence str, final CharSequence suffix, final boolean ignoreCase) {
8564 2 1. endsWith : negated conditional → KILLED
2. endsWith : negated conditional → KILLED
        if (str == null || suffix == null) {
8565 3 1. endsWith : negated conditional → KILLED
2. endsWith : negated conditional → KILLED
3. endsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return str == null && suffix == null;
8566
        }
8567 2 1. endsWith : changed conditional boundary → SURVIVED
2. endsWith : negated conditional → KILLED
        if (suffix.length() > str.length()) {
8568 1 1. endsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
8569
        }
8570 1 1. endsWith : Replaced integer subtraction with addition → KILLED
        final int strOffset = str.length() - suffix.length();
8571 1 1. endsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.regionMatches(str, ignoreCase, strOffset, suffix, 0, suffix.length());
8572
    }
8573
8574
    /**
8575
     * <p>
8576
     * Similar to <a
8577
     * href="http://www.w3.org/TR/xpath/#function-normalize-space">http://www.w3.org/TR/xpath/#function-normalize
8578
     * -space</a>
8579
     * </p>
8580
     * <p>
8581
     * The function returns the argument string with whitespace normalized by using
8582
     * <code>{@link #trim(String)}</code> to remove leading and trailing whitespace
8583
     * and then replacing sequences of whitespace characters by a single space.
8584
     * </p>
8585
     * In XML Whitespace characters are the same as those allowed by the <a
8586
     * href="http://www.w3.org/TR/REC-xml/#NT-S">S</a> production, which is S ::= (#x20 | #x9 | #xD | #xA)+
8587
     * <p>
8588
     * Java's regexp pattern \s defines whitespace as [ \t\n\x0B\f\r]
8589
     *
8590
     * <p>For reference:</p>
8591
     * <ul>
8592
     * <li>\x0B = vertical tab</li>
8593
     * <li>\f = #xC = form feed</li>
8594
     * <li>#x20 = space</li>
8595
     * <li>#x9 = \t</li>
8596
     * <li>#xA = \n</li>
8597
     * <li>#xD = \r</li>
8598
     * </ul>
8599
     *
8600
     * <p>
8601
     * The difference is that Java's whitespace includes vertical tab and form feed, which this functional will also
8602
     * normalize. Additionally <code>{@link #trim(String)}</code> removes control characters (char &lt;= 32) from both
8603
     * ends of this String.
8604
     * </p>
8605
     *
8606
     * @see Pattern
8607
     * @see #trim(String)
8608
     * @see <a
8609
     *      href="http://www.w3.org/TR/xpath/#function-normalize-space">http://www.w3.org/TR/xpath/#function-normalize-space</a>
8610
     * @param str the source String to normalize whitespaces from, may be null
8611
     * @return the modified string with whitespace normalized, {@code null} if null String input
8612
     *
8613
     * @since 3.0
8614
     */
8615
    public static String normalizeSpace(final String str) {
8616
        // LANG-1020: Improved performance significantly by normalizing manually instead of using regex
8617
        // See https://github.com/librucha/commons-lang-normalizespaces-benchmark for performance test
8618 1 1. normalizeSpace : negated conditional → KILLED
        if (isEmpty(str)) {
8619 1 1. normalizeSpace : mutated return of Object value for org/apache/commons/lang3/StringUtils::normalizeSpace to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
8620
        }
8621
        final int size = str.length();
8622
        final char[] newChars = new char[size];
8623
        int count = 0;
8624
        int whitespacesCount = 0;
8625
        boolean startWhitespaces = true;
8626 3 1. normalizeSpace : changed conditional boundary → KILLED
2. normalizeSpace : Changed increment from 1 to -1 → KILLED
3. normalizeSpace : negated conditional → KILLED
        for (int i = 0; i < size; i++) {
8627
            final char actualChar = str.charAt(i);
8628
            final boolean isWhitespace = Character.isWhitespace(actualChar);
8629 1 1. normalizeSpace : negated conditional → KILLED
            if (!isWhitespace) {
8630
                startWhitespaces = false;
8631 2 1. normalizeSpace : Changed increment from 1 to -1 → KILLED
2. normalizeSpace : negated conditional → KILLED
                newChars[count++] = (actualChar == 160 ? 32 : actualChar);
8632
                whitespacesCount = 0;
8633
            } else {
8634 2 1. normalizeSpace : negated conditional → KILLED
2. normalizeSpace : negated conditional → KILLED
                if (whitespacesCount == 0 && !startWhitespaces) {
8635 1 1. normalizeSpace : Changed increment from 1 to -1 → KILLED
                    newChars[count++] = SPACE.charAt(0);
8636
                }
8637 1 1. normalizeSpace : Changed increment from 1 to -1 → SURVIVED
                whitespacesCount++;
8638
            }
8639
        }
8640 1 1. normalizeSpace : negated conditional → KILLED
        if (startWhitespaces) {
8641 1 1. normalizeSpace : mutated return of Object value for org/apache/commons/lang3/StringUtils::normalizeSpace to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
8642
        }
8643 4 1. normalizeSpace : Replaced integer subtraction with addition → SURVIVED
2. normalizeSpace : changed conditional boundary → KILLED
3. normalizeSpace : negated conditional → KILLED
4. normalizeSpace : mutated return of Object value for org/apache/commons/lang3/StringUtils::normalizeSpace to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(newChars, 0, count - (whitespacesCount > 0 ? 1 : 0)).trim();
8644
    }
8645
8646
    /**
8647
     * <p>Check if a CharSequence ends with any of the provided case-sensitive suffixes.</p>
8648
     *
8649
     * <pre>
8650
     * StringUtils.endsWithAny(null, null)      = false
8651
     * StringUtils.endsWithAny(null, new String[] {"abc"})  = false
8652
     * StringUtils.endsWithAny("abcxyz", null)     = false
8653
     * StringUtils.endsWithAny("abcxyz", new String[] {""}) = true
8654
     * StringUtils.endsWithAny("abcxyz", new String[] {"xyz"}) = true
8655
     * StringUtils.endsWithAny("abcxyz", new String[] {null, "xyz", "abc"}) = true
8656
     * StringUtils.endsWithAny("abcXYZ", "def", "XYZ") = true
8657
     * StringUtils.endsWithAny("abcXYZ", "def", "xyz") = false
8658
     * </pre>
8659
     *
8660
     * @param sequence  the CharSequence to check, may be null
8661
     * @param searchStrings the case-sensitive CharSequences to find, may be empty or contain {@code null}
8662
     * @see StringUtils#endsWith(CharSequence, CharSequence)
8663
     * @return {@code true} if the input {@code sequence} is {@code null} AND no {@code searchStrings} are provided, or
8664
     *   the input {@code sequence} ends in any of the provided case-sensitive {@code searchStrings}.
8665
     * @since 3.0
8666
     */
8667
    public static boolean endsWithAny(final CharSequence sequence, final CharSequence... searchStrings) {
8668 2 1. endsWithAny : negated conditional → KILLED
2. endsWithAny : negated conditional → KILLED
        if (isEmpty(sequence) || ArrayUtils.isEmpty(searchStrings)) {
8669 1 1. endsWithAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
8670
        }
8671 3 1. endsWithAny : changed conditional boundary → KILLED
2. endsWithAny : Changed increment from 1 to -1 → KILLED
3. endsWithAny : negated conditional → KILLED
        for (final CharSequence searchString : searchStrings) {
8672 1 1. endsWithAny : negated conditional → KILLED
            if (endsWith(sequence, searchString)) {
8673 1 1. endsWithAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return true;
8674
            }
8675
        }
8676 1 1. endsWithAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
8677
    }
8678
8679
    /**
8680
     * Appends the suffix to the end of the string if the string does not
8681
     * already end with the suffix.
8682
     *
8683
     * @param str The string.
8684
     * @param suffix The suffix to append to the end of the string.
8685
     * @param ignoreCase Indicates whether the compare should ignore case.
8686
     * @param suffixes Additional suffixes that are valid terminators (optional).
8687
     *
8688
     * @return A new String if suffix was appended, the same string otherwise.
8689
     */
8690
    private static String appendIfMissing(final String str, final CharSequence suffix, final boolean ignoreCase, final CharSequence... suffixes) {
8691 3 1. appendIfMissing : negated conditional → KILLED
2. appendIfMissing : negated conditional → KILLED
3. appendIfMissing : negated conditional → KILLED
        if (str == null || isEmpty(suffix) || endsWith(str, suffix, ignoreCase)) {
8692 1 1. appendIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
8693
        }
8694 3 1. appendIfMissing : changed conditional boundary → SURVIVED
2. appendIfMissing : negated conditional → KILLED
3. appendIfMissing : negated conditional → KILLED
        if (suffixes != null && suffixes.length > 0) {
8695 3 1. appendIfMissing : changed conditional boundary → KILLED
2. appendIfMissing : Changed increment from 1 to -1 → KILLED
3. appendIfMissing : negated conditional → KILLED
            for (final CharSequence s : suffixes) {
8696 1 1. appendIfMissing : negated conditional → KILLED
                if (endsWith(str, s, ignoreCase)) {
8697 1 1. appendIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
                    return str;
8698
                }
8699
            }
8700
        }
8701 1 1. appendIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str + suffix.toString();
8702
    }
8703
8704
    /**
8705
     * Appends the suffix to the end of the string if the string does not
8706
     * already end with any of the suffixes.
8707
     *
8708
     * <pre>
8709
     * StringUtils.appendIfMissing(null, null) = null
8710
     * StringUtils.appendIfMissing("abc", null) = "abc"
8711
     * StringUtils.appendIfMissing("", "xyz") = "xyz"
8712
     * StringUtils.appendIfMissing("abc", "xyz") = "abcxyz"
8713
     * StringUtils.appendIfMissing("abcxyz", "xyz") = "abcxyz"
8714
     * StringUtils.appendIfMissing("abcXYZ", "xyz") = "abcXYZxyz"
8715
     * </pre>
8716
     * <p>With additional suffixes,</p>
8717
     * <pre>
8718
     * StringUtils.appendIfMissing(null, null, null) = null
8719
     * StringUtils.appendIfMissing("abc", null, null) = "abc"
8720
     * StringUtils.appendIfMissing("", "xyz", null) = "xyz"
8721
     * StringUtils.appendIfMissing("abc", "xyz", new CharSequence[]{null}) = "abcxyz"
8722
     * StringUtils.appendIfMissing("abc", "xyz", "") = "abc"
8723
     * StringUtils.appendIfMissing("abc", "xyz", "mno") = "abcxyz"
8724
     * StringUtils.appendIfMissing("abcxyz", "xyz", "mno") = "abcxyz"
8725
     * StringUtils.appendIfMissing("abcmno", "xyz", "mno") = "abcmno"
8726
     * StringUtils.appendIfMissing("abcXYZ", "xyz", "mno") = "abcXYZxyz"
8727
     * StringUtils.appendIfMissing("abcMNO", "xyz", "mno") = "abcMNOxyz"
8728
     * </pre>
8729
     *
8730
     * @param str The string.
8731
     * @param suffix The suffix to append to the end of the string.
8732
     * @param suffixes Additional suffixes that are valid terminators.
8733
     *
8734
     * @return A new String if suffix was appended, the same string otherwise.
8735
     *
8736
     * @since 3.2
8737
     */
8738
    public static String appendIfMissing(final String str, final CharSequence suffix, final CharSequence... suffixes) {
8739 1 1. appendIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return appendIfMissing(str, suffix, false, suffixes);
8740
    }
8741
8742
    /**
8743
     * Appends the suffix to the end of the string if the string does not
8744
     * already end, case insensitive, with any of the suffixes.
8745
     *
8746
     * <pre>
8747
     * StringUtils.appendIfMissingIgnoreCase(null, null) = null
8748
     * StringUtils.appendIfMissingIgnoreCase("abc", null) = "abc"
8749
     * StringUtils.appendIfMissingIgnoreCase("", "xyz") = "xyz"
8750
     * StringUtils.appendIfMissingIgnoreCase("abc", "xyz") = "abcxyz"
8751
     * StringUtils.appendIfMissingIgnoreCase("abcxyz", "xyz") = "abcxyz"
8752
     * StringUtils.appendIfMissingIgnoreCase("abcXYZ", "xyz") = "abcXYZ"
8753
     * </pre>
8754
     * <p>With additional suffixes,</p>
8755
     * <pre>
8756
     * StringUtils.appendIfMissingIgnoreCase(null, null, null) = null
8757
     * StringUtils.appendIfMissingIgnoreCase("abc", null, null) = "abc"
8758
     * StringUtils.appendIfMissingIgnoreCase("", "xyz", null) = "xyz"
8759
     * StringUtils.appendIfMissingIgnoreCase("abc", "xyz", new CharSequence[]{null}) = "abcxyz"
8760
     * StringUtils.appendIfMissingIgnoreCase("abc", "xyz", "") = "abc"
8761
     * StringUtils.appendIfMissingIgnoreCase("abc", "xyz", "mno") = "axyz"
8762
     * StringUtils.appendIfMissingIgnoreCase("abcxyz", "xyz", "mno") = "abcxyz"
8763
     * StringUtils.appendIfMissingIgnoreCase("abcmno", "xyz", "mno") = "abcmno"
8764
     * StringUtils.appendIfMissingIgnoreCase("abcXYZ", "xyz", "mno") = "abcXYZ"
8765
     * StringUtils.appendIfMissingIgnoreCase("abcMNO", "xyz", "mno") = "abcMNO"
8766
     * </pre>
8767
     *
8768
     * @param str The string.
8769
     * @param suffix The suffix to append to the end of the string.
8770
     * @param suffixes Additional suffixes that are valid terminators.
8771
     *
8772
     * @return A new String if suffix was appended, the same string otherwise.
8773
     *
8774
     * @since 3.2
8775
     */
8776
    public static String appendIfMissingIgnoreCase(final String str, final CharSequence suffix, final CharSequence... suffixes) {
8777 1 1. appendIfMissingIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissingIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return appendIfMissing(str, suffix, true, suffixes);
8778
    }
8779
8780
    /**
8781
     * Prepends the prefix to the start of the string if the string does not
8782
     * already start with any of the prefixes.
8783
     *
8784
     * @param str The string.
8785
     * @param prefix The prefix to prepend to the start of the string.
8786
     * @param ignoreCase Indicates whether the compare should ignore case.
8787
     * @param prefixes Additional prefixes that are valid (optional).
8788
     *
8789
     * @return A new String if prefix was prepended, the same string otherwise.
8790
     */
8791
    private static String prependIfMissing(final String str, final CharSequence prefix, final boolean ignoreCase, final CharSequence... prefixes) {
8792 3 1. prependIfMissing : negated conditional → KILLED
2. prependIfMissing : negated conditional → KILLED
3. prependIfMissing : negated conditional → KILLED
        if (str == null || isEmpty(prefix) || startsWith(str, prefix, ignoreCase)) {
8793 1 1. prependIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
8794
        }
8795 3 1. prependIfMissing : changed conditional boundary → SURVIVED
2. prependIfMissing : negated conditional → KILLED
3. prependIfMissing : negated conditional → KILLED
        if (prefixes != null && prefixes.length > 0) {
8796 3 1. prependIfMissing : changed conditional boundary → KILLED
2. prependIfMissing : Changed increment from 1 to -1 → KILLED
3. prependIfMissing : negated conditional → KILLED
            for (final CharSequence p : prefixes) {
8797 1 1. prependIfMissing : negated conditional → KILLED
                if (startsWith(str, p, ignoreCase)) {
8798 1 1. prependIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
                    return str;
8799
                }
8800
            }
8801
        }
8802 1 1. prependIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return prefix.toString() + str;
8803
    }
8804
8805
    /**
8806
     * Prepends the prefix to the start of the string if the string does not
8807
     * already start with any of the prefixes.
8808
     *
8809
     * <pre>
8810
     * StringUtils.prependIfMissing(null, null) = null
8811
     * StringUtils.prependIfMissing("abc", null) = "abc"
8812
     * StringUtils.prependIfMissing("", "xyz") = "xyz"
8813
     * StringUtils.prependIfMissing("abc", "xyz") = "xyzabc"
8814
     * StringUtils.prependIfMissing("xyzabc", "xyz") = "xyzabc"
8815
     * StringUtils.prependIfMissing("XYZabc", "xyz") = "xyzXYZabc"
8816
     * </pre>
8817
     * <p>With additional prefixes,</p>
8818
     * <pre>
8819
     * StringUtils.prependIfMissing(null, null, null) = null
8820
     * StringUtils.prependIfMissing("abc", null, null) = "abc"
8821
     * StringUtils.prependIfMissing("", "xyz", null) = "xyz"
8822
     * StringUtils.prependIfMissing("abc", "xyz", new CharSequence[]{null}) = "xyzabc"
8823
     * StringUtils.prependIfMissing("abc", "xyz", "") = "abc"
8824
     * StringUtils.prependIfMissing("abc", "xyz", "mno") = "xyzabc"
8825
     * StringUtils.prependIfMissing("xyzabc", "xyz", "mno") = "xyzabc"
8826
     * StringUtils.prependIfMissing("mnoabc", "xyz", "mno") = "mnoabc"
8827
     * StringUtils.prependIfMissing("XYZabc", "xyz", "mno") = "xyzXYZabc"
8828
     * StringUtils.prependIfMissing("MNOabc", "xyz", "mno") = "xyzMNOabc"
8829
     * </pre>
8830
     *
8831
     * @param str The string.
8832
     * @param prefix The prefix to prepend to the start of the string.
8833
     * @param prefixes Additional prefixes that are valid.
8834
     *
8835
     * @return A new String if prefix was prepended, the same string otherwise.
8836
     *
8837
     * @since 3.2
8838
     */
8839
    public static String prependIfMissing(final String str, final CharSequence prefix, final CharSequence... prefixes) {
8840 1 1. prependIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return prependIfMissing(str, prefix, false, prefixes);
8841
    }
8842
8843
    /**
8844
     * Prepends the prefix to the start of the string if the string does not
8845
     * already start, case insensitive, with any of the prefixes.
8846
     *
8847
     * <pre>
8848
     * StringUtils.prependIfMissingIgnoreCase(null, null) = null
8849
     * StringUtils.prependIfMissingIgnoreCase("abc", null) = "abc"
8850
     * StringUtils.prependIfMissingIgnoreCase("", "xyz") = "xyz"
8851
     * StringUtils.prependIfMissingIgnoreCase("abc", "xyz") = "xyzabc"
8852
     * StringUtils.prependIfMissingIgnoreCase("xyzabc", "xyz") = "xyzabc"
8853
     * StringUtils.prependIfMissingIgnoreCase("XYZabc", "xyz") = "XYZabc"
8854
     * </pre>
8855
     * <p>With additional prefixes,</p>
8856
     * <pre>
8857
     * StringUtils.prependIfMissingIgnoreCase(null, null, null) = null
8858
     * StringUtils.prependIfMissingIgnoreCase("abc", null, null) = "abc"
8859
     * StringUtils.prependIfMissingIgnoreCase("", "xyz", null) = "xyz"
8860
     * StringUtils.prependIfMissingIgnoreCase("abc", "xyz", new CharSequence[]{null}) = "xyzabc"
8861
     * StringUtils.prependIfMissingIgnoreCase("abc", "xyz", "") = "abc"
8862
     * StringUtils.prependIfMissingIgnoreCase("abc", "xyz", "mno") = "xyzabc"
8863
     * StringUtils.prependIfMissingIgnoreCase("xyzabc", "xyz", "mno") = "xyzabc"
8864
     * StringUtils.prependIfMissingIgnoreCase("mnoabc", "xyz", "mno") = "mnoabc"
8865
     * StringUtils.prependIfMissingIgnoreCase("XYZabc", "xyz", "mno") = "XYZabc"
8866
     * StringUtils.prependIfMissingIgnoreCase("MNOabc", "xyz", "mno") = "MNOabc"
8867
     * </pre>
8868
     *
8869
     * @param str The string.
8870
     * @param prefix The prefix to prepend to the start of the string.
8871
     * @param prefixes Additional prefixes that are valid (optional).
8872
     *
8873
     * @return A new String if prefix was prepended, the same string otherwise.
8874
     *
8875
     * @since 3.2
8876
     */
8877
    public static String prependIfMissingIgnoreCase(final String str, final CharSequence prefix, final CharSequence... prefixes) {
8878 1 1. prependIfMissingIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissingIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return prependIfMissing(str, prefix, true, prefixes);
8879
    }
8880
8881
    /**
8882
     * Converts a <code>byte[]</code> to a String using the specified character encoding.
8883
     *
8884
     * @param bytes
8885
     *            the byte array to read from
8886
     * @param charsetName
8887
     *            the encoding to use, if null then use the platform default
8888
     * @return a new String
8889
     * @throws UnsupportedEncodingException
8890
     *             If the named charset is not supported
8891
     * @throws NullPointerException
8892
     *             if the input is null
8893
     * @deprecated use {@link StringUtils#toEncodedString(byte[], Charset)} instead of String constants in your code
8894
     * @since 3.1
8895
     */
8896
    @Deprecated
8897
    public static String toString(final byte[] bytes, final String charsetName) throws UnsupportedEncodingException {
8898 2 1. toString : negated conditional → KILLED
2. toString : mutated return of Object value for org/apache/commons/lang3/StringUtils::toString to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return charsetName != null ? new String(bytes, charsetName) : new String(bytes, Charset.defaultCharset());
8899
    }
8900
8901
    /**
8902
     * Converts a <code>byte[]</code> to a String using the specified character encoding.
8903
     * 
8904
     * @param bytes
8905
     *            the byte array to read from
8906
     * @param charset
8907
     *            the encoding to use, if null then use the platform default
8908
     * @return a new String
8909
     * @throws NullPointerException
8910
     *             if {@code bytes} is null
8911
     * @since 3.2
8912
     * @since 3.3 No longer throws {@link UnsupportedEncodingException}.
8913
     */
8914
    public static String toEncodedString(final byte[] bytes, final Charset charset) {
8915 2 1. toEncodedString : negated conditional → KILLED
2. toEncodedString : mutated return of Object value for org/apache/commons/lang3/StringUtils::toEncodedString to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(bytes, charset != null ? charset : Charset.defaultCharset());
8916
    }
8917
8918
    /**
8919
     * <p>
8920
     * Wraps a string with a char.
8921
     * </p>
8922
     * 
8923
     * <pre>
8924
     * StringUtils.wrap(null, *)        = null
8925
     * StringUtils.wrap("", *)          = ""
8926
     * StringUtils.wrap("ab", '\0')     = "ab"
8927
     * StringUtils.wrap("ab", 'x')      = "xabx"
8928
     * StringUtils.wrap("ab", '\'')     = "'ab'"
8929
     * StringUtils.wrap("\"ab\"", '\"') = "\"\"ab\"\""
8930
     * </pre>
8931
     * 
8932
     * @param str
8933
     *            the string to be wrapped, may be {@code null}
8934
     * @param wrapWith
8935
     *            the char that will wrap {@code str}
8936
     * @return the wrapped string, or {@code null} if {@code str==null}
8937
     * @since 3.4
8938
     */
8939
    public static String wrap(final String str, final char wrapWith) {
8940
8941 2 1. wrap : negated conditional → KILLED
2. wrap : negated conditional → KILLED
        if (isEmpty(str) || wrapWith == '\0') {
8942 1 1. wrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
8943
        }
8944
8945 1 1. wrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return wrapWith + str + wrapWith;
8946
    }
8947
8948
    /**
8949
     * <p>
8950
     * Wraps a String with another String.
8951
     * </p>
8952
     * 
8953
     * <p>
8954
     * A {@code null} input String returns {@code null}.
8955
     * </p>
8956
     * 
8957
     * <pre>
8958
     * StringUtils.wrap(null, *)         = null
8959
     * StringUtils.wrap("", *)           = ""
8960
     * StringUtils.wrap("ab", null)      = "ab"
8961
     * StringUtils.wrap("ab", "x")       = "xabx"
8962
     * StringUtils.wrap("ab", "\"")      = "\"ab\""
8963
     * StringUtils.wrap("\"ab\"", "\"")  = "\"\"ab\"\""
8964
     * StringUtils.wrap("ab", "'")       = "'ab'"
8965
     * StringUtils.wrap("'abcd'", "'")   = "''abcd''"
8966
     * StringUtils.wrap("\"abcd\"", "'") = "'\"abcd\"'"
8967
     * StringUtils.wrap("'abcd'", "\"")  = "\"'abcd'\""
8968
     * </pre>
8969
     * 
8970
     * @param str
8971
     *            the String to be wrapper, may be null
8972
     * @param wrapWith
8973
     *            the String that will wrap str
8974
     * @return wrapped String, {@code null} if null String input
8975
     * @since 3.4
8976
     */
8977
    public static String wrap(final String str, final String wrapWith) {
8978
8979 2 1. wrap : negated conditional → KILLED
2. wrap : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(wrapWith)) {
8980 1 1. wrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
8981
        }
8982
8983 1 1. wrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return wrapWith.concat(str).concat(wrapWith);
8984
    }
8985
8986
    /**
8987
     * <p>
8988
     * Wraps a string with a char if that char is missing from the start or end of the given string.
8989
     * </p>
8990
     * 
8991
     * <pre>
8992
     * StringUtils.wrap(null, *)        = null
8993
     * StringUtils.wrap("", *)          = ""
8994
     * StringUtils.wrap("ab", '\0')     = "ab"
8995
     * StringUtils.wrap("ab", 'x')      = "xabx"
8996
     * StringUtils.wrap("ab", '\'')     = "'ab'"
8997
     * StringUtils.wrap("\"ab\"", '\"') = "\"ab\""
8998
     * StringUtils.wrap("/", '/')  = "/"
8999
     * StringUtils.wrap("a/b/c", '/')  = "/a/b/c/"
9000
     * StringUtils.wrap("/a/b/c", '/')  = "/a/b/c/"
9001
     * StringUtils.wrap("a/b/c/", '/')  = "/a/b/c/"
9002
     * </pre>
9003
     * 
9004
     * @param str
9005
     *            the string to be wrapped, may be {@code null}
9006
     * @param wrapWith
9007
     *            the char that will wrap {@code str}
9008
     * @return the wrapped string, or {@code null} if {@code str==null}
9009
     * @since 3.5
9010
     */
9011
    public static String wrapIfMissing(final String str, final char wrapWith) {
9012 2 1. wrapIfMissing : negated conditional → KILLED
2. wrapIfMissing : negated conditional → KILLED
        if (isEmpty(str) || wrapWith == '\0') {
9013 1 1. wrapIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
9014
        }
9015 1 1. wrapIfMissing : Replaced integer addition with subtraction → KILLED
        final StringBuilder builder = new StringBuilder(str.length() + 2);
9016 1 1. wrapIfMissing : negated conditional → KILLED
        if (str.charAt(0) != wrapWith) {
9017
            builder.append(wrapWith);
9018
        }
9019
        builder.append(str);
9020 2 1. wrapIfMissing : Replaced integer subtraction with addition → KILLED
2. wrapIfMissing : negated conditional → KILLED
        if (str.charAt(str.length() - 1) != wrapWith) {
9021
            builder.append(wrapWith);
9022
        }
9023 1 1. wrapIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return builder.toString();
9024
    }
9025
9026
    /**
9027
     * <p>
9028
     * Wraps a string with a string if that string is missing from the start or end of the given string.
9029
     * </p>
9030
     * 
9031
     * <pre>
9032
     * StringUtils.wrap(null, *)         = null
9033
     * StringUtils.wrap("", *)           = ""
9034
     * StringUtils.wrap("ab", null)      = "ab"
9035
     * StringUtils.wrap("ab", "x")       = "xabx"
9036
     * StringUtils.wrap("ab", "\"")      = "\"ab\""
9037
     * StringUtils.wrap("\"ab\"", "\"")  = "\"ab\""
9038
     * StringUtils.wrap("ab", "'")       = "'ab'"
9039
     * StringUtils.wrap("'abcd'", "'")   = "'abcd'"
9040
     * StringUtils.wrap("\"abcd\"", "'") = "'\"abcd\"'"
9041
     * StringUtils.wrap("'abcd'", "\"")  = "\"'abcd'\""
9042
     * StringUtils.wrap("/", "/")  = "/"
9043
     * StringUtils.wrap("a/b/c", "/")  = "/a/b/c/"
9044
     * StringUtils.wrap("/a/b/c", "/")  = "/a/b/c/"
9045
     * StringUtils.wrap("a/b/c/", "/")  = "/a/b/c/"
9046
     * </pre>
9047
     * 
9048
     * @param str
9049
     *            the string to be wrapped, may be {@code null}
9050
     * @param wrapWith
9051
     *            the char that will wrap {@code str}
9052
     * @return the wrapped string, or {@code null} if {@code str==null}
9053
     * @since 3.5
9054
     */
9055
    public static String wrapIfMissing(final String str, final String wrapWith) {
9056 2 1. wrapIfMissing : negated conditional → KILLED
2. wrapIfMissing : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(wrapWith)) {
9057 1 1. wrapIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
9058
        }
9059 2 1. wrapIfMissing : Replaced integer addition with subtraction → SURVIVED
2. wrapIfMissing : Replaced integer addition with subtraction → SURVIVED
        final StringBuilder builder = new StringBuilder(str.length() + wrapWith.length() + wrapWith.length());
9060 1 1. wrapIfMissing : negated conditional → KILLED
        if (!str.startsWith(wrapWith)) {
9061
            builder.append(wrapWith);
9062
        }
9063
        builder.append(str);
9064 1 1. wrapIfMissing : negated conditional → KILLED
        if (!str.endsWith(wrapWith)) {
9065
            builder.append(wrapWith);
9066
        }
9067 1 1. wrapIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return builder.toString();
9068
    }
9069
9070
    /**
9071
     * <p>
9072
     * Unwraps a given string from anther string.
9073
     * </p>
9074
     *
9075
     * <pre>
9076
     * StringUtils.unwrap(null, null)         = null
9077
     * StringUtils.unwrap(null, "")           = null
9078
     * StringUtils.unwrap(null, "1")          = null
9079
     * StringUtils.unwrap("\'abc\'", "\'")    = "abc"
9080
     * StringUtils.unwrap("\"abc\"", "\"")    = "abc"
9081
     * StringUtils.unwrap("AABabcBAA", "AA")  = "BabcB"
9082
     * StringUtils.unwrap("A", "#")           = "A"
9083
     * StringUtils.unwrap("#A", "#")          = "#A"
9084
     * StringUtils.unwrap("A#", "#")          = "A#"
9085
     * </pre>
9086
     *
9087
     * @param str
9088
     *          the String to be unwrapped, can be null
9089
     * @param wrapToken
9090
     *          the String used to unwrap
9091
     * @return unwrapped String or the original string 
9092
     *          if it is not quoted properly with the wrapToken
9093
     * @since 3.6
9094
     */
9095
    public static String unwrap(final String str, final String wrapToken) {
9096 2 1. unwrap : negated conditional → KILLED
2. unwrap : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(wrapToken)) {
9097 1 1. unwrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
9098
        }
9099
9100 2 1. unwrap : negated conditional → KILLED
2. unwrap : negated conditional → KILLED
        if (startsWith(str, wrapToken) && endsWith(str, wrapToken)) {
9101
            final int startIndex = str.indexOf(wrapToken);
9102
            final int endIndex = str.lastIndexOf(wrapToken);
9103
            final int wrapLength = wrapToken.length();
9104 2 1. unwrap : negated conditional → KILLED
2. unwrap : negated conditional → KILLED
            if (startIndex != -1 && endIndex != -1) {
9105 2 1. unwrap : Replaced integer addition with subtraction → KILLED
2. unwrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return str.substring(startIndex + wrapLength, endIndex);
9106
            }
9107
        }
9108
9109 1 1. unwrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
9110
    }
9111
9112
    /**
9113
     * <p>
9114
     * Unwraps a given string from a character.
9115
     * </p>
9116
     * 
9117
     * <pre>
9118
     * StringUtils.unwrap(null, null)         = null
9119
     * StringUtils.unwrap(null, '\0')         = null
9120
     * StringUtils.unwrap(null, '1')          = null
9121
     * StringUtils.unwrap("\'abc\'", '\'')    = "abc"
9122
     * StringUtils.unwrap("AABabcBAA", 'A')  = "ABabcBA"
9123
     * StringUtils.unwrap("A", '#')           = "A"
9124
     * StringUtils.unwrap("#A", '#')          = "#A"
9125
     * StringUtils.unwrap("A#", '#')          = "A#"
9126
     * </pre>
9127
     *
9128
     * @param str
9129
     *          the String to be unwrapped, can be null
9130
     * @param wrapChar
9131
     *          the character used to unwrap
9132
     * @return unwrapped String or the original string 
9133
     *          if it is not quoted properly with the wrapChar
9134
     * @since 3.6
9135
     */
9136
    public static String unwrap(final String str, final char wrapChar) {
9137 2 1. unwrap : negated conditional → KILLED
2. unwrap : negated conditional → KILLED
        if (isEmpty(str) || wrapChar == '\0') {
9138 1 1. unwrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
9139
        }
9140
9141 3 1. unwrap : Replaced integer subtraction with addition → KILLED
2. unwrap : negated conditional → KILLED
3. unwrap : negated conditional → KILLED
        if (str.charAt(0) == wrapChar && str.charAt(str.length() - 1) == wrapChar) {
9142
            final int startIndex = 0;
9143 1 1. unwrap : Replaced integer subtraction with addition → KILLED
            final int endIndex = str.length() - 1;
9144 1 1. unwrap : negated conditional → KILLED
            if (startIndex != -1 && endIndex != -1) {
9145 1 1. unwrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return str.substring(startIndex + 1, endIndex);
9146
            }
9147
        }
9148
9149 1 1. unwrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
9150
    }
9151
    
9152
    
9153
    /**
9154
     * <p>Converts a {@code CharSequence} into an array of code points.</p>
9155
     * 
9156
     * <p>Valid pairs of surrogate code units will be converted into a single supplementary
9157
     * code point. Isolated surrogate code units (i.e. a high surrogate not followed by a low surrogate or
9158
     * a low surrogate not preceeded by a high surrogate) will be returned as-is.</p>
9159
     * 
9160
     * <pre>
9161
     * StringUtils.toCodePoints(null)   =  null
9162
     * StringUtils.toCodePoints("")     =  []  // empty array
9163
     * </pre>
9164
     * 
9165
     * @param str the character sequence to convert
9166
     * @return an array of code points
9167
     * @since 3.6
9168
     */
9169
    public static int[] toCodePoints(CharSequence str) {
9170 1 1. toCodePoints : negated conditional → KILLED
        if (str == null) {
9171 1 1. toCodePoints : mutated return of Object value for org/apache/commons/lang3/StringUtils::toCodePoints to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
9172
        }
9173 1 1. toCodePoints : negated conditional → KILLED
        if (str.length() == 0) {
9174 1 1. toCodePoints : mutated return of Object value for org/apache/commons/lang3/StringUtils::toCodePoints to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ArrayUtils.EMPTY_INT_ARRAY;
9175
        }
9176
        
9177
        String s = str.toString();
9178
        int[] result = new int[s.codePointCount(0, s.length())];
9179
        int index = 0;
9180 3 1. toCodePoints : changed conditional boundary → KILLED
2. toCodePoints : Changed increment from 1 to -1 → KILLED
3. toCodePoints : negated conditional → KILLED
        for (int i = 0; i < result.length; i++) {
9181
            result[i] = s.codePointAt(index);
9182 1 1. toCodePoints : Replaced integer addition with subtraction → KILLED
            index += Character.charCount(result[i]);
9183
        }     
9184 1 1. toCodePoints : mutated return of Object value for org/apache/commons/lang3/StringUtils::toCodePoints to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return result;
9185
    }    
9186
}

Mutations

210

1.1
Location : isEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : isEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : isEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

229

1.1
Location : isNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

2.2
Location : isNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

250

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

251

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

253

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
changed conditional boundary → KILLED

2.2
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

254

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

255

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

258

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

280

1.1
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

281

1.1
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

283

1.1
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
changed conditional boundary → KILLED

2.2
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

284

1.1
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

285

1.1
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

288

1.1
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

310

1.1
Location : isNoneEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNoneEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

2.2
Location : isNoneEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNoneEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

333

1.1
Location : isAllEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAllEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

2.2
Location : isAllEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAllEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

356

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuffers(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuffers(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

357

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuffers(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

359

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuffers(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuffers(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuffers(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

360

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuffers(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

361

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuffers(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

364

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuffers(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

387

1.1
Location : isNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

2.2
Location : isNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

412

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

413

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

415

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
changed conditional boundary → KILLED

2.2
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

416

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

417

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

420

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

445

1.1
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

446

1.1
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

448

1.1
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
changed conditional boundary → KILLED

2.2
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

449

1.1
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

450

1.1
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

453

1.1
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

478

1.1
Location : isNoneBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNoneBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

2.2
Location : isNoneBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNoneBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

503

1.1
Location : isAllBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAllBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

2.2
Location : isAllBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAllBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

532

1.1
Location : trim
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testTrim(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : trim
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testTrim(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::trim to ( if (x != null) null else throw new RuntimeException ) → KILLED

559

1.1
Location : trimToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testTrimToNull(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : trimToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testTrimToNull(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::trimToNull to ( if (x != null) null else throw new RuntimeException ) → KILLED

584

1.1
Location : trimToEmpty
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testTrimToEmpty(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : trimToEmpty
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testTrimToEmpty(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::trimToEmpty to ( if (x != null) null else throw new RuntimeException ) → KILLED

619

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED

682

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

685

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

688

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

689

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED

691

1.1
Location : truncate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

692

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED

694

1.1
Location : truncate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

695

1.1
Location : truncate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

696

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED

698

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED

726

1.1
Location : strip
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStrip_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::strip to ( if (x != null) null else throw new RuntimeException ) → KILLED

753

1.1
Location : stripToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToNull_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

754

1.1
Location : stripToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToNull_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripToNull to ( if (x != null) null else throw new RuntimeException ) → KILLED

757

1.1
Location : stripToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToNull_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : stripToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToNull_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripToNull to ( if (x != null) null else throw new RuntimeException ) → KILLED

783

1.1
Location : stripToEmpty
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToEmpty_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : stripToEmpty
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToEmpty_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripToEmpty to ( if (x != null) null else throw new RuntimeException ) → KILLED

813

1.1
Location : strip
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStrip_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

814

1.1
Location : strip
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStrip_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::strip to ( if (x != null) null else throw new RuntimeException ) → KILLED

817

1.1
Location : strip
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStrip_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::strip to ( if (x != null) null else throw new RuntimeException ) → KILLED

846

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

847

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripStart to ( if (x != null) null else throw new RuntimeException ) → KILLED

850

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

851

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

852

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
Changed increment from 1 to -1 → KILLED

854

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

855

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripStart to ( if (x != null) null else throw new RuntimeException ) → KILLED

857

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

858

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
Changed increment from 1 to -1 → KILLED

861

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripStart to ( if (x != null) null else throw new RuntimeException ) → KILLED

891

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

892

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripEnd_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED

895

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

896

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripEnd_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripEnd_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

3.3
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripEnd_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

897

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripEnd_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
Changed increment from -1 to 1 → KILLED

899

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

900

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripEnd_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED

902

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

903

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
Changed increment from -1 to 1 → KILLED

906

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED

931

1.1
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAll to ( if (x != null) null else throw new RuntimeException ) → KILLED

961

1.1
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

962

1.1
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAll to ( if (x != null) null else throw new RuntimeException ) → KILLED

965

1.1
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
changed conditional boundary → KILLED

2.2
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

968

1.1
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAll to ( if (x != null) null else throw new RuntimeException ) → KILLED

990

1.1
Location : stripAccents
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

991

1.1
Location : stripAccents
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAccents to ( if (x != null) null else throw new RuntimeException ) → KILLED

995

1.1
Location : stripAccents
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
removed call to org/apache/commons/lang3/StringUtils::convertRemainingAccentCharacters → KILLED

997

1.1
Location : stripAccents
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAccents to ( if (x != null) null else throw new RuntimeException ) → KILLED

1001

1.1
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
changed conditional boundary → KILLED

2.2
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

1002

1.1
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

1005

1.1
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

1036

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1037

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1039

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1040

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1042

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1043

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1045

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEquals(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1046

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1048

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEquals(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1073

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1074

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1075

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1076

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1077

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1078

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1080

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1119

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1157

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1158

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1160

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1161

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1163

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1164

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1166

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1207

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1250

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringStringBoolean(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1251

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringStringBoolean(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1253

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringStringBoolean(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1254

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringStringBoolean(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringStringBoolean(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1256

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringStringBoolean(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1257

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringStringBoolean(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringStringBoolean(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1259

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringStringBoolean(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1282

1.1
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1283

1.1
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1284

1.1
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1285

1.1
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1289

1.1
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1313

1.1
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1314

1.1
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1315

1.1
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1316

1.1
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1320

1.1
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1346

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_char(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1347

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_char(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1349

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_char(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1379

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_charInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1380

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_charInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1382

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_charInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1410

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1411

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1413

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1450

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1451

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1453

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1507

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_2(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1526

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_2(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

3.3
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_2(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

4.4
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_2(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1527

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1529

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_2(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1530

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1535

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_2(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1537

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_2(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1538

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer subtraction with addition → KILLED

1540

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_2(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

1542

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_2(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_2(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1543

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1545

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_2(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

1546

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_2(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_2(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1547

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_2(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1576

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1612

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1613

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1615

1.1
Location : indexOfIgnoreCase
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1618

1.1
Location : indexOfIgnoreCase
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2.2
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

1619

1.1
Location : indexOfIgnoreCase
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1620

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1622

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1623

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1625

1.1
Location : indexOfIgnoreCase
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfIgnoreCase
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

3.3
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1626

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1627

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1630

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1656

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_char(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1657

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_char(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1659

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_char(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1694

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_charInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1695

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_charInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1697

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_charInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1724

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1725

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1727

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1765

1.1
Location : lastOrdinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1805

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1806

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1808

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1835

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1836

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1838

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1874

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1875

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1877

1.1
Location : lastIndexOfIgnoreCase
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : lastIndexOfIgnoreCase
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3.3
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1878

1.1
Location : lastIndexOfIgnoreCase
Killed by : none
Replaced integer subtraction with addition → SURVIVED

1880

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1881

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1883

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1884

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1887

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from -1 to 1 → KILLED

3.3
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1888

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1889

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1892

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1918

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_Char(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1919

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_Char(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1921

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_Char(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_Char(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

3.3
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_Char(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1947

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_String(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_String(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1948

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_String(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1950

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_String(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_String(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

3.3
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_String(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1978

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1979

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1982

1.1
Location : containsIgnoreCase
Killed by : none
Replaced integer subtraction with addition → SURVIVED

1983

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsIgnoreCase
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

3.3
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1984

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1985

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1988

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2003

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2004

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2007

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2008

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2009

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2012

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2041

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2042

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2045

1.1
Location : indexOfAny
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2047

1.1
Location : indexOfAny
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2048

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2050

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2051

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2052

1.1
Location : indexOfAny
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfAny
Killed by : none
changed conditional boundary → SURVIVED

3.3
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

4.4
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

5.5
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2054

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2055

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2058

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2063

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2090

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2091

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2093

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2124

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2125

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2129

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer subtraction with addition → KILLED

2130

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer subtraction with addition → KILLED

2131

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2133

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2134

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2135

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2136

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2138

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2140

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

5.5
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2141

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2145

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2150

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2185

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2186

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2188

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2217

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2218

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2220

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2221

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2222

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2225

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2255

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2256

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2259

1.1
Location : indexOfAnyBut
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2261

1.1
Location : indexOfAnyBut
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2263

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2265

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2266

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2267

1.1
Location : indexOfAnyBut
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfAnyBut
Killed by : none
changed conditional boundary → SURVIVED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

4.4
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

5.5
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2268

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2276

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2278

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2305

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2306

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2309

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2311

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2312

1.1
Location : indexOfAnyBut
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfAnyBut
Killed by : none
Replaced integer addition with subtraction → SURVIVED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

4.4
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2313

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

2314

1.1
Location : indexOfAnyBut
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2315

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2318

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2319

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2323

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2352

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2353

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2355

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2356

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2358

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2359

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2361

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2388

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_String(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_String(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2389

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_String(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2391

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_String(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2420

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2421

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2424

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer subtraction with addition → KILLED

2426

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer subtraction with addition → KILLED

2427

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.testEscapeSurrogatePairs(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.testEscapeSurrogatePairs(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2429

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.testEscapeSurrogatePairs(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.testEscapeSurrogatePairs(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2430

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.testEscapeSurrogatePairs(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2431

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2432

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2434

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2436

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

5.5
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2437

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2441

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2446

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.testEscapeSurrogatePairs(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2473

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_String(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_String(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2474

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_String(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2476

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_String(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2509

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2510

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2517

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2518

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2522

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2526

1.1
Location : indexOfAny
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2531

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2561

1.1
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2562

1.1
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2566

1.1
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2567

1.1
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2571

1.1
Location : lastIndexOfAny
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2575

1.1
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2605

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2606

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringInt(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED

2610

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringInt(org.apache.commons.lang3.StringUtilsSubstringTest)
changed conditional boundary → KILLED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2611

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

2614

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2617

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2618

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringInt(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED

2621

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED

2660

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2661

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringIntInt(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED

2665

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2666

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

2668

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2669

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringIntInt(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

2673

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2678

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2679

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringIntInt(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED

2682

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringIntInt(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2685

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2689

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED

2715

1.1
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2716

1.1
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED

2718

1.1
Location : left
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2719

1.1
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED

2721

1.1
Location : left
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2722

1.1
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED

2724

1.1
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED

2748

1.1
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2749

1.1
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED

2751

1.1
Location : right
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2752

1.1
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED

2754

1.1
Location : right
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2755

1.1
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED

2757

1.1
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED

2786

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2787

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED

2789

1.1
Location : mid
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : mid
Killed by : none
changed conditional boundary → SURVIVED

3.3
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

4.4
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2790

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED

2792

1.1
Location : mid
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2795

1.1
Location : mid
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2796

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED

2798

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED

2831

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2.2
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2832

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED

2834

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2835

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED

2838

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2839

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED

2841

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED

2873

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2874

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED

2876

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2877

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED

2880

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2881

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED

2883

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED

2914

1.1
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBeforeLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2.2
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBeforeLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2915

1.1
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBeforeLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBeforeLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2918

1.1
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBeforeLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2919

1.1
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBeforeLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBeforeLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2921

1.1
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBeforeLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBeforeLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2954

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2955

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2957

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2958

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2961

1.1
Location : substringAfterLast
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2.2
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3.3
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2962

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2964

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2991

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

3022

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2.2
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3.3
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3023

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

3026

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3027

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

3028

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3029

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

3032

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

3058

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2.2
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3.3
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3059

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

3062

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3063

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

3069

1.1
Location : substringsBetween
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substringsBetween
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3.3
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3071

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
changed conditional boundary → KILLED

2.2
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3074

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

3076

1.1
Location : substringsBetween
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3080

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

3082

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3083

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

3085

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

3116

1.1
Location : split
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED

3144

1.1
Location : split
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED

3173

1.1
Location : split
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED

3207

1.1
Location : split
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED

3234

1.1
Location : splitByWholeSeparator
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBoolean(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparator to ( if (x != null) null else throw new RuntimeException ) → KILLED

3265

1.1
Location : splitByWholeSeparator
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparator to ( if (x != null) null else throw new RuntimeException ) → KILLED

3294

1.1
Location : splitByWholeSeparatorPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeSeparatorPreserveAllTokens_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED

3327

1.1
Location : splitByWholeSeparatorPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeSeparatorPreserveAllTokens_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED

3346

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3347

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3352

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3353

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3356

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3358

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3367

1.1
Location : splitByWholeSeparatorWorker
Killed by : none
changed conditional boundary → TIMED_OUT

2.2
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3370

1.1
Location : splitByWholeSeparatorWorker
Killed by : none
changed conditional boundary → TIMED_OUT

2.2
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3371

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBoolean(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3372

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3374

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3385

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

3389

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeSeparatorPreserveAllTokens_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3390

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeSeparatorPreserveAllTokens_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3391

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeSeparatorPreserveAllTokens_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3398

1.1
Location : splitByWholeSeparatorWorker
Killed by : none
Replaced integer addition with subtraction → TIMED_OUT

3407

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3436

1.1
Location : splitPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED

3472

1.1
Location : splitPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED

3490

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3491

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3494

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3495

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3501

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3502

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3503

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3508

1.1
Location : splitWorker
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

3513

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3515

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3518

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3555

1.1
Location : splitPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED

3595

1.1
Location : splitPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED

3617

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3618

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3621

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3622

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3629

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3631

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3632

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3633

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3635

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3642

1.1
Location : splitWorker
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

3647

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3649

1.1
Location : splitWorker
Killed by : none
negated conditional → SURVIVED

3652

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3653

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3654

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3656

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3663

1.1
Location : splitWorker
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

3668

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3672

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3673

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3674

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3676

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3683

1.1
Location : splitWorker
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

3688

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3691

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3694

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3717

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED

3745

1.1
Location : splitByCharacterTypeCamelCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterTypeCamelCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterTypeCamelCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

3763

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3764

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED

3766

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3767

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED

3773

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3775

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3778

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterTypeCamelCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterTypeCamelCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3779

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterTypeCamelCase(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

3780

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterTypeCamelCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3781

1.1
Location : splitByCharacterType
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3785

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

3790

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

3791

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED

3820

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3846

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3847

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3849

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3878

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3879

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3881

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3910

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3911

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3913

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3942

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3943

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3945

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3974

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3975

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3977

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4006

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4007

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4009

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4038

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4039

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4041

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4070

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4071

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4073

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4104

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4105

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4107

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4108

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4109

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4111

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4112

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4113

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4116

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4120

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4155

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4156

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4158

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4159

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4160

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4162

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4163

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4164

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4169

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4204

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4205

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4207

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4208

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4209

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4211

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4212

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4213

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4218

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4253

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4254

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4256

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4257

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4258

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4260

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4261

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4262

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4267

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4302

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4303

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4305

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4306

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4307

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4309

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4310

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4311

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4316

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4351

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4352

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4354

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4355

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4356

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4358

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4359

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4360

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4365

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4400

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4401

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4403

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4404

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4405

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4407

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4408

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4409

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4414

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4449

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4450

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4452

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4453

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4454

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4456

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4457

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4458

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4463

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4491

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4492

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4494

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4533

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4534

1.1
Location : join
Killed by : none
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE

4536

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4542

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4543

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4544

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4547

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4549

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4550

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4553

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4557

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4577

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4578

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4580

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4581

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4584

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4586

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4591

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4595

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4598

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4603

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4622

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4623

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4625

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4626

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4629

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4631

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4636

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4640

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4641

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4645

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4649

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4667

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4668

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4670

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4688

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4689

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4691

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4715

1.1
Location : joinWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoinWithThrowsException(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4724

1.1
Location : joinWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoinWith(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4728

1.1
Location : joinWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoinWith(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4733

1.1
Location : joinWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoinWith(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::joinWith to ( if (x != null) null else throw new RuntimeException ) → KILLED

4753

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4754

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::deleteWhitespace to ( if (x != null) null else throw new RuntimeException ) → KILLED

4759

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4760

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4761

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

4764

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4765

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::deleteWhitespace to ( if (x != null) null else throw new RuntimeException ) → KILLED

4767

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::deleteWhitespace to ( if (x != null) null else throw new RuntimeException ) → KILLED

4797

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStart(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStart(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4798

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStart(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStart to ( if (x != null) null else throw new RuntimeException ) → KILLED

4800

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStart(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4801

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStart(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStart to ( if (x != null) null else throw new RuntimeException ) → KILLED

4803

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStart(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStart to ( if (x != null) null else throw new RuntimeException ) → KILLED

4832

1.1
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4833

1.1
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4835

1.1
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4836

1.1
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4838

1.1
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4866

1.1
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4867

1.1
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED

4869

1.1
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4870

1.1
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED

4872

1.1
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED

4902

1.1
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4903

1.1
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4905

1.1
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4906

1.1
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4908

1.1
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4935

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4936

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED

4938

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED

4975

1.1
Location : removeIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : removeIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4976

1.1
Location : removeIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4978

1.1
Location : removeIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

5001

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5002

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED

5006

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5007

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5008

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

5011

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED

5058

1.1
Location : removeAll
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveAll(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeAll to ( if (x != null) null else throw new RuntimeException ) → KILLED

5104

1.1
Location : removeFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveFirst(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeFirst to ( if (x != null) null else throw new RuntimeException ) → KILLED

5133

1.1
Location : replaceOnce
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceOnce to ( if (x != null) null else throw new RuntimeException ) → KILLED

5162

1.1
Location : replaceOnceIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnceIgnoreCase_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceOnceIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

5205

1.1
Location : replacePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemovePattern(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replacePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemovePattern(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replacePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemovePattern(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5206

1.1
Location : replacePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemovePattern(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replacePattern to ( if (x != null) null else throw new RuntimeException ) → KILLED

5208

1.1
Location : replacePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemovePattern(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replacePattern to ( if (x != null) null else throw new RuntimeException ) → KILLED

5242

1.1
Location : removePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemovePattern(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removePattern to ( if (x != null) null else throw new RuntimeException ) → KILLED

5294

1.1
Location : replaceAll
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceAll(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceAll
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceAll(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replaceAll
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceAll(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5295

1.1
Location : replaceAll
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceAll(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceAll to ( if (x != null) null else throw new RuntimeException ) → KILLED

5297

1.1
Location : replaceAll
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceAll(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceAll to ( if (x != null) null else throw new RuntimeException ) → KILLED

5347

1.1
Location : replaceFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceFirst(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceFirst(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replaceFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceFirst(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5348

1.1
Location : replaceFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceFirst(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceFirst to ( if (x != null) null else throw new RuntimeException ) → KILLED

5350

1.1
Location : replaceFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceFirst(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceFirst to ( if (x != null) null else throw new RuntimeException ) → KILLED

5377

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED

5405

1.1
Location : replaceIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceIgnoreCase_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

5437

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED

5472

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4.4
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5473

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceIgnoreCase_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED

5476

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5482

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5483

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED

5486

1.1
Location : replace
Killed by : none
Replaced integer subtraction with addition → SURVIVED

5487

1.1
Location : replace
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5488

1.1
Location : replace
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : replace
Killed by : none
changed conditional boundary → SURVIVED

3.3
Location : replace
Killed by : none
Replaced integer multiplication with division → SURVIVED

4.4
Location : replace
Killed by : none
negated conditional → SURVIVED

5.5
Location : replace
Killed by : none
negated conditional → SURVIVED

5489

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringEscapeUtilsTest.testEscapeCsvWriter(org.apache.commons.lang3.StringEscapeUtilsTest)
Replaced integer addition with subtraction → KILLED

5490

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5492

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

5493

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
Changed increment from -1 to 1 → KILLED

2.2
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5499

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED

5532

1.1
Location : replaceIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

5575

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED

5623

1.1
Location : replaceEachRepeatedly
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5624

1.1
Location : replaceEachRepeatedly
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEachRepeatedly to ( if (x != null) null else throw new RuntimeException ) → KILLED

5683

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4.4
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5.5
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6.6
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5685

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED

5689

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5698

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5715

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5716

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5717

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5723

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5726

1.1
Location : replaceEach
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5735

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5736

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED

5745

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : replaceEach
Killed by : none
negated conditional → SURVIVED

5746

1.1
Location : replaceEach
Killed by : none
negated conditional → SURVIVED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5749

1.1
Location : replaceEach
Killed by : none
Replaced integer subtraction with addition → SURVIVED

5750

1.1
Location : replaceEach
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : replaceEach
Killed by : none
negated conditional → SURVIVED

5751

1.1
Location : replaceEach
Killed by : none
Replaced integer multiplication with division → SURVIVED

2.2
Location : replaceEach
Killed by : none
Replaced integer addition with subtraction → SURVIVED

5755

1.1
Location : replaceEach
Killed by : none
Replaced integer division with multiplication → SURVIVED

5757

1.1
Location : replaceEach
Killed by : none
Replaced integer addition with subtraction → SURVIVED

5759

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5761

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5766

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

5773

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5774

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5775

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5781

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5784

1.1
Location : replaceEach
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5794

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5798

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5799

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED

5802

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED

5828

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testLang623(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5829

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringCharChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED

5831

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testLang623(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED

5871

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5872

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED

5874

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5881

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5884

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5886

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5893

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5894

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED

5896

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED

5931

1.1
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5932

1.1
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::overlay to ( if (x != null) null else throw new RuntimeException ) → KILLED

5934

1.1
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5938

1.1
Location : overlay
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5941

1.1
Location : overlay
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5944

1.1
Location : overlay
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5947

1.1
Location : overlay
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5950

1.1
Location : overlay
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5955

1.1
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : overlay
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3.3
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

5.5
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::overlay to ( if (x != null) null else throw new RuntimeException ) → KILLED

5990

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5991

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED

5994

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5996

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5997

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED

5999

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED

6002

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6005

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6006

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6007

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
Changed increment from -1 to 1 → KILLED

6009

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6010

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

6012

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED

6044

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED

6073

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6074

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED

6077

1.1
Location : chop
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6078

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED

6080

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6083

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6084

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED

6086

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED

6115

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6116

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6118

1.1
Location : repeat
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6119

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6122

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6123

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6125

1.1
Location : repeat
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : repeat
Killed by : none
negated conditional → SURVIVED

6126

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6129

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer multiplication with division → KILLED

6132

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6137

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : repeat
Killed by : none
Changed increment from -1 to 1 → TIMED_OUT

3.3
Location : repeat
Killed by : none
Changed increment from -1 to 1 → TIMED_OUT

4.4
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer multiplication with division → KILLED

5.5
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6.6
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6139

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6141

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6144

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6147

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6172

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6173

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6177

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6203

1.1
Location : repeat
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6204

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_CharInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6207

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from -1 to 1 → KILLED

3.3
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

4.4
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6210

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6233

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6258

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6259

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6261

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6262

1.1
Location : rightPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6263

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6265

1.1
Location : rightPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6266

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6268

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6295

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6296

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6298

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6303

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6304

1.1
Location : rightPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6305

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6307

1.1
Location : rightPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6308

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6311

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6312

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6313

1.1
Location : rightPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6314

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6318

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6319

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer modulus with multiplication → KILLED

6321

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6345

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6370

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6371

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6373

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6374

1.1
Location : leftPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6375

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6377

1.1
Location : leftPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6378

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6380

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6407

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6408

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6410

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6415

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6416

1.1
Location : leftPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6417

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6419

1.1
Location : leftPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6420

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6423

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6424

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6425

1.1
Location : leftPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6426

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6430

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6431

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer modulus with multiplication → KILLED

6433

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6449

1.1
Location : length
Killed by : org.apache.commons.lang3.StringUtilsTest.testLengthString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : length
Killed by : org.apache.commons.lang3.StringUtilsTest.testLengthString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6478

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6506

1.1
Location : center
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6507

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6510

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6511

1.1
Location : center
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6512

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6514

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer division with multiplication → KILLED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6516

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6546

1.1
Location : center
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6547

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6549

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6553

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6554

1.1
Location : center
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6555

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6557

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer division with multiplication → KILLED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6559

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6584

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testUpperCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6585

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testUpperCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6587

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testUpperCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6607

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testUpperCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6608

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testUpperCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6610

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testUpperCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6633

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6634

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testLowerCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6636

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testLowerCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6656

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6657

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testLowerCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6659

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testLowerCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6685

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6686

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::capitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED

6691

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6693

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::capitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED

6698

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

6699

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6701

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

6702

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6704

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::capitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED

6730

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6731

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnCapitalize(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::uncapitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED

6736

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6738

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnCapitalize(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::uncapitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED

6743

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

6744

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6746

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

6747

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6749

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::uncapitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED

6780

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6781

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::swapCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6787

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6790

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6792

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6794

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6799

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

6800

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6802

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::swapCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6828

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2.2
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

6829

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_String(org.apache.commons.lang3.StringUtilsSubstringTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6833

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

6834

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_String(org.apache.commons.lang3.StringUtilsSubstringTest)
Changed increment from 1 to -1 → KILLED

6835

1.1
Location : countMatches
Killed by : none
Replaced integer addition with subtraction → TIMED_OUT

6837

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_String(org.apache.commons.lang3.StringUtilsSubstringTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6860

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.ClassUtilsTest.test_getAbbreviatedName_String(org.apache.commons.lang3.ClassUtilsTest)
negated conditional → KILLED

6861

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6865

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.ClassUtilsTest.test_getAbbreviatedName_String(org.apache.commons.lang3.ClassUtilsTest)
changed conditional boundary → KILLED

2.2
Location : countMatches
Killed by : org.apache.commons.lang3.ClassUtilsTest.test_getAbbreviatedName_String(org.apache.commons.lang3.ClassUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : countMatches
Killed by : org.apache.commons.lang3.ClassUtilsTest.test_getAbbreviatedName_String(org.apache.commons.lang3.ClassUtilsTest)
negated conditional → KILLED

6866

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.ClassUtilsTest.test_getAbbreviatedName_String(org.apache.commons.lang3.ClassUtilsTest)
negated conditional → KILLED

6867

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.ClassUtilsTest.test_getAbbreviatedName_String(org.apache.commons.lang3.ClassUtilsTest)
Changed increment from 1 to -1 → KILLED

6870

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.ClassUtilsTest.test_getAbbreviatedName_String(org.apache.commons.lang3.ClassUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6896

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6897

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6900

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6901

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6902

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6905

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6931

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6932

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6935

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6936

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

2.2
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6937

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6940

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6966

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6967

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6970

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6971

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6972

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6975

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7001

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7002

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7005

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7006

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

2.2
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7007

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7010

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7040

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7041

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7044

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7045

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7046

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7049

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7084

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7085

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7088

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7089

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7090

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7093

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7123

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7124

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7127

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7128

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

2.2
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7129

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7132

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7158

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7159

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7162

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7163

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7164

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7167

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7193

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7194

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7197

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7198

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7199

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7202

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7228

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7229

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7232

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7233

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7234

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7237

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7259

1.1
Location : defaultString
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefault_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : defaultString
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefault_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultString to ( if (x != null) null else throw new RuntimeException ) → KILLED

7280

1.1
Location : defaultString
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefault_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : defaultString
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefault_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultString to ( if (x != null) null else throw new RuntimeException ) → KILLED

7304

1.1
Location : defaultIfBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuffers(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : defaultIfBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuffers(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultIfBlank to ( if (x != null) null else throw new RuntimeException ) → KILLED

7326

1.1
Location : defaultIfEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfEmpty_CharBuffers(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : defaultIfEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfEmpty_CharBuffers(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultIfEmpty to ( if (x != null) null else throw new RuntimeException ) → KILLED

7358

1.1
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7359

1.1
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rotate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7363

1.1
Location : rotate
Killed by : none
Replaced integer modulus with multiplication → SURVIVED

2.2
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4.4
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7364

1.1
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rotate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7368

1.1
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
removed negation → KILLED

2.2
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer modulus with multiplication → KILLED

7371

1.1
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rotate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7391

1.1
Location : reverse
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverse_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7392

1.1
Location : reverse
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverse_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::reverse to ( if (x != null) null else throw new RuntimeException ) → KILLED

7394

1.1
Location : reverse
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverse_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::reverse to ( if (x != null) null else throw new RuntimeException ) → KILLED

7417

1.1
Location : reverseDelimited
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverseDelimited_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7418

1.1
Location : reverseDelimited
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverseDelimited_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::reverseDelimited to ( if (x != null) null else throw new RuntimeException ) → KILLED

7423

1.1
Location : reverseDelimited
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverseDelimited_StringChar(org.apache.commons.lang3.StringUtilsTest)
removed call to org/apache/commons/lang3/ArrayUtils::reverse → KILLED

7424

1.1
Location : reverseDelimited
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverseDelimited_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::reverseDelimited to ( if (x != null) null else throw new RuntimeException ) → KILLED

7462

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7502

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7542

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7583

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7584

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7588

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

7589

1.1
Location : abbreviate
Killed by : none
Replaced integer addition with subtraction → SURVIVED

2.2
Location : abbreviate
Killed by : none
Replaced integer addition with subtraction → SURVIVED

7591

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7594

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7595

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7597

1.1
Location : abbreviate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7600

1.1
Location : abbreviate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : abbreviate
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3.3
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

4.4
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7601

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : abbreviate
Killed by : none
Replaced integer subtraction with addition → SURVIVED

7603

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7604

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7606

1.1
Location : abbreviate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7609

1.1
Location : abbreviate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : abbreviate
Killed by : none
Replaced integer addition with subtraction → SURVIVED

3.3
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

4.4
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7610

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7612

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

3.3
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7645

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7646

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviateMiddle to ( if (x != null) null else throw new RuntimeException ) → KILLED

7649

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

3.3
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5.5
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7650

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviateMiddle to ( if (x != null) null else throw new RuntimeException ) → KILLED

7653

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

7654

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer division with multiplication → KILLED

2.2
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer modulus with multiplication → KILLED

3.3
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

7655

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer division with multiplication → KILLED

2.2
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

7662

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviateMiddle to ( if (x != null) null else throw new RuntimeException ) → KILLED

7696

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7697

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED

7699

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7700

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED

7703

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7704

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED

7706

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED

7735

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7736

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7738

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7739

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7742

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

4.4
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5.5
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7743

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7747

1.1
Location : indexOfDifference
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfDifference
Killed by : none
changed conditional boundary → SURVIVED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4.4
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7748

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7750

1.1
Location : indexOfDifference
Killed by : none
replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE

7786

1.1
Location : indexOfDifference
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7787

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7798

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7799

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7810

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7811

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7815

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7816

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7821

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7823

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7824

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7829

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7834

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7838

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7840

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7877

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7878

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED

7881

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7883

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7884

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED

7886

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED

7887

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7889

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED

7892

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED

7931

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringNull(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_NullString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7938

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7939

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7940

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7941

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7944

1.1
Location : getLevenshteinDistance
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getLevenshteinDistance
Killed by : none
negated conditional → SURVIVED

7953

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

7963

1.1
Location : getLevenshteinDistance
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getLevenshteinDistance
Killed by : none
negated conditional → SURVIVED

7967

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7969

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

7972

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7974

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7976

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

7981

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8017

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_NullStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringNullInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8020

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringNegativeInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8072

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8073

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8074

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8075

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8078

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8079

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8082

1.1
Location : getLevenshteinDistance
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getLevenshteinDistance
Killed by : none
negated conditional → SURVIVED

8091

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

8092

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

8096

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

8097

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getLevenshteinDistance
Killed by : none
negated conditional → SURVIVED

8102

1.1
Location : getLevenshteinDistance
Killed by : none
removed call to java/util/Arrays::fill → SURVIVED

8103

1.1
Location : getLevenshteinDistance
Killed by : none
removed call to java/util/Arrays::fill → SURVIVED

8106

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8107

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

8111

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

8112

1.1
Location : getLevenshteinDistance
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getLevenshteinDistance
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8115

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8116

1.1
Location : getLevenshteinDistance
Killed by : none
replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE

8120

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8121

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

8125

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8126

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8128

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

8131

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

8143

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8144

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8146

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8186

1.1
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_NullString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringNull(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8192

1.1
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8193

1.1
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerDistance → KILLED

8195

1.1
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

2.2
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double addition with subtraction → KILLED

4.4
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double subtraction with addition → KILLED

5.5
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

6.6
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double addition with subtraction → KILLED

7.7
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

8196

1.1
Location : getJaroWinklerDistance
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double multiplication with division → KILLED

4.4
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double subtraction with addition → KILLED

5.5
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double multiplication with division → KILLED

6.6
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double addition with subtraction → KILLED

7.7
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8197

1.1
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double multiplication with division → KILLED

2.2
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerDistance → KILLED

8235

1.1
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_NullString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringNull(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8241

1.1
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8242

1.1
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerSimilarity → KILLED

8244

1.1
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

2.2
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double addition with subtraction → KILLED

4.4
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double subtraction with addition → KILLED

5.5
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

6.6
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double addition with subtraction → KILLED

7.7
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

8245

1.1
Location : getJaroWinklerSimilarity
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double multiplication with division → KILLED

4.4
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double subtraction with addition → KILLED

5.5
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double multiplication with division → KILLED

6.6
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double addition with subtraction → KILLED

7.7
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8246

1.1
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double multiplication with division → KILLED

2.2
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerSimilarity → KILLED

8251

1.1
Location : matches
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8258

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer division with multiplication → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

8260

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
removed call to java/util/Arrays::fill → KILLED

8263

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8265

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

4.4
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

5.5
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6.6
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8266

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8269

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8276

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8277

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8279

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8282

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8283

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8285

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8289

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8290

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8291

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8295

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8296

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8297

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8302

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer division with multiplication → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::matches to ( if (x != null) null else throw new RuntimeException ) → KILLED

8332

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance_NullStringLocale(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance_StringNullLoclae(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8334

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance_StringStringNull(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8355

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8359

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4.4
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8362

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8364

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8368

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8369

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 2 to -2 → KILLED

8381

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8410

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8436

1.1
Location : startsWithIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8451

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8452

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWith(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

3.3
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8454

1.1
Location : startsWith
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8455

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8457

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8483

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

2.2
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

8484

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8486

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
changed conditional boundary → KILLED

2.2
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

8487

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

8488

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8491

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8522

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8549

1.1
Location : endsWithIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8564

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8565

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWith(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

3.3
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8567

1.1
Location : endsWith
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8568

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8570

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

8571

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8618

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8619

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::normalizeSpace to ( if (x != null) null else throw new RuntimeException ) → KILLED

8626

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8629

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8631

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

2.2
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8634

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8635

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8637

1.1
Location : normalizeSpace
Killed by : none
Changed increment from 1 to -1 → SURVIVED

8640

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8641

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::normalizeSpace to ( if (x != null) null else throw new RuntimeException ) → KILLED

8643

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : normalizeSpace
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3.3
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4.4
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::normalizeSpace to ( if (x != null) null else throw new RuntimeException ) → KILLED

8668

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

2.2
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

8669

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8671

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
changed conditional boundary → KILLED

2.2
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

8672

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

8673

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8676

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8691

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8692

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8694

1.1
Location : appendIfMissing
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8695

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8696

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8697

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8701

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8739

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8777

1.1
Location : appendIfMissingIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissingIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissingIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

8792

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8793

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8795

1.1
Location : prependIfMissing
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8796

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8797

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8798

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8802

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8840

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8878

1.1
Location : prependIfMissingIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissingIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissingIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

8898

1.1
Location : toString
Killed by : org.apache.commons.lang3.StringUtilsTest.testToString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : toString
Killed by : org.apache.commons.lang3.StringUtilsTest.testToString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::toString to ( if (x != null) null else throw new RuntimeException ) → KILLED

8915

1.1
Location : toEncodedString
Killed by : org.apache.commons.lang3.StringUtilsTest.testToEncodedString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : toEncodedString
Killed by : org.apache.commons.lang3.StringUtilsTest.testToEncodedString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::toEncodedString to ( if (x != null) null else throw new RuntimeException ) → KILLED

8941

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8942

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

8945

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

8979

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8980

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

8983

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

9012

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9013

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

9015

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

9016

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9020

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9023

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

9056

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9057

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

9059

1.1
Location : wrapIfMissing
Killed by : none
Replaced integer addition with subtraction → SURVIVED

2.2
Location : wrapIfMissing
Killed by : none
Replaced integer addition with subtraction → SURVIVED

9060

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9064

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9067

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

9096

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9097

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

9100

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9104

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9105

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

9109

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

9137

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9138

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

9141

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9143

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

9144

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9145

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

9149

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

9170

1.1
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.testToCodePoints(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9171

1.1
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.testToCodePoints(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::toCodePoints to ( if (x != null) null else throw new RuntimeException ) → KILLED

9173

1.1
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.testToCodePoints(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9174

1.1
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.testToCodePoints(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::toCodePoints to ( if (x != null) null else throw new RuntimeException ) → KILLED

9180

1.1
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.testToCodePoints(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.testToCodePoints(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.testToCodePoints(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9182

1.1
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.testToCodePoints(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

9184

1.1
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.testToCodePoints(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::toCodePoints to ( if (x != null) null else throw new RuntimeException ) → KILLED

Active mutators

Tests examined


Report generated by PIT 1.1.10